擅长:python、mysql、java
<p>你需要一个函数,比如<code>randombits()</code>,它在某个范围内生成一个随机整数(即256或2^32)。那么<code>random()</code>函数需要首先取<code>x</code>和{<cd4>}的差值,即<code>random(x, y)</code>的可能输出数。然后它需要计算调用<code>randombits()</code>的次数,以获得足够的熵。然后它需要将<code>randombits()</code>的多个调用的值合并为一个长整数。
一种方法是将<code>randombits()</code>的输出放入长随机整数的一个单独数字中,也就是说,如果调用的输出是<code>8, 9, 1</code>,那么长随机整数将是891。在</p>
<p>然后它需要将长随机整数缩小到可能输出的数量(x和y之间的差)。<code>random.random()</code>使用的一种方法是继续获取一个长的随机整数,直到它在范围内。然后它需要将长随机整数添加到<code>x</code>中,并将其返回。在</p>
<p>代码:</p>
<pre><code>RANDOMBITS_RANGE = 256
def randombits():
return 4 # Replace this code with something that generates real random numbers
def random(x,y):
num_range = y-x
num_of_calls = num_range//RANDOMBITS_RANGE
random_integer = num_range + 1 #So that the first time the while loop block will execute
while random_integer >= num_range: #Keeps looping until random_integer < num_range
random_integer = sum(randombits()*RANDOMBITS_RANGE**x for x in range(num_of_calls))
return random_integer
</code></pre>