小编Eva*_*ter的帖子

如何递归模拟随机游走?没有循环(Python)

Python问题

我有一个随机步骤的功能:

def random_step(): 
    """ chooses a random step (-1 or 1) and returns it.
        inputs: none! However, make sure to use parens when calling it.
            For example: ramdom_step()
    """
    return random.choice([-1, 1])
Run Code Online (Sandbox Code Playgroud)

我需要在我写的这个函数中调用它:

rw_outcome( start, numsteps ),需要两个输入:

  • start,一个表示梦游者起始位置的整数
  • numsteps,一个正int,表示从起始位置获取的随机步骤数

它应该模拟随机游走,其中包含numsteps随机步骤,其大小是使用调用来确定的random_step(),但我会继续返回相同的起始位置.

它应该与print返回的一个例子('start is',start):

>>> rw_outcome(40, 4)
start is 40
start is 41
start is 42
start is 41
start is 42
42
Run Code Online (Sandbox Code Playgroud)

到目前为止我所拥有的:

def rw_outcome(start, numsteps):
    print('start is', start)
    if start + (numsteps*random_step()) …
Run Code Online (Sandbox Code Playgroud)

python simulation recursion random-walk

1
推荐指数
1
解决办法
901
查看次数

Python:如何递归模拟范围内的随机游走(无循环)

一个朋友打赌我不能递归地写这个。不幸的是他赢了,但我仍然想知道我将如何去做:

函数为: rw_in_range(start, low, high)

输入是:

start - 一个正整数,表示“梦游者”的起始位置

- 一个正整数,代表“梦游者”将被允许徘徊到的最左边位置

high - 一个正整数,代表“梦游者”将被允许游荡到的最右边位置

低 <= 开始 <= 高

该函数应模拟随机游走,其中“梦游者”在由低和高边界给出的位置范围内徘徊。

梦游者进行随机步骤,其大小由调用我的函数给出:

def random_step():
    """ chooses a random step (-1 or 1) and returns it.
        inputs: none! However, make sure to use parens when calling it.
                For example: random_step()
    """
    return random.choice([-1, 1])
Run Code Online (Sandbox Code Playgroud)

随机游走应该继续,直到给定的步骤导致“梦游者”到达/超出边界低或高之一。然后,该函数应返回梦游者到达停止位置所需的步数。

例如,第一行的语句print((' ' * start) + 'S')应该是这样的:

>>> rw_in_range(10, 5, 15)
      S
     S
    S
   S
    S
     S
    S
   S
  S
 S
Run Code Online (Sandbox Code Playgroud)

9

我的函数目前看起来像这样:

def rw_in_range(start, …
Run Code Online (Sandbox Code Playgroud)

python recursion range random-walk

0
推荐指数
1
解决办法
2286
查看次数

标签 统计

python ×2

random-walk ×2

recursion ×2

range ×1

simulation ×1