在一定范围内生成随机数

时间:2014-01-27 07:14:26

标签: random

假设我所拥有的是一个以相等概率随机生成0和1的例程,我该如何使用它来查找1到n之间的随机数。我不能使用任何其他随机函数。我需要使用我的例程来实现目标。请指点任何帮助。

2 个答案:

答案 0 :(得分:0)

简单地使用fomular    兰特()*(N-1)+1

答案 1 :(得分:0)

  1. 设m = ceil(log 2 (n));也就是说,m是表示n。
  2. 所需的位数
  3. 生成长度为m的随机位串,并将其解释为非负整数k。
  4. 如果k> = n,请返回步骤2.否则,随机数为k + 1。
  5. 这是一种拒绝抽样形式,可以在[1,n]范围内的随机整数k + 1上进行均匀分布。