2
def rwSteps(start, low, hi):
    n=0
    while low <= start <= hi:
        print (start-low-1)*" " + "#" + (hi-start)*" ", n
        start+=random.choice((-1,1))
        n+=1
    return "%d steps" % (n-1)


print rwSteps(10, 5, 15)

上記の関数は、再帰的に書き直す必要がある関数です。この関数は、開始点の整数と、最低点と最高点を受け取ります。開始点から、上限または下限に到達するまで、関数は開始点からランダムに +1 または -1 を実行する必要があります。これが私がこれまでに持っているものです。

def RandomWalkSteps(start, low, hi):

    count = 0
    count = count + 1 

    if(low <= start <= hi):
        count = count + 1 
        start+=random.choice((-1,1))
        newStart = start
        RandomWalkSteps(newStart, low, hi)
        return count 

私はかなり近づいているように感じますが、再帰のすべてのインスタンスで適切にインクリメントされるように、「カウント」ステートメントをどこに置くかという問題に直面しています。重要な情報を省略した場合は、お気軽に大声で叫んでください。

4

3 に答える 3

0

私はこれがあなたが探しているものだと信じています

def RandomWalkSteps(count, start, low, hi):
    if low <= start <= hi:
        start+=random.choice((-1,1))
        newStart = start
        return RandomWalkSteps(count+1, newStart, low, hi)
    else:
        return count

RandomWalkSteps(0, x, y, z)代わりに呼び出すRandomWalkStep(x, y, z)

于 2013-06-07T06:07:15.383 に答える