4

我需要一个从 0 到 10 或从 0 到 100 的完全随机数作为在 QBasic 中为随机抽取程序完成的值“NUM”。我目前有这个:

RANDOMIZE TIMER: A = INT((RND * 100)): B = INT((RND * 10)): C = (A + B)
NUM = INT(C - (RND * 10))

这基本上只是一堆随机数学运算,以获得从 1 到 100 的随机数。

问题是我经常得到相同或非常相似的数字。有没有更可靠的方法来做到这一点?

4

3 回答 3

3

您提供的代码根本不符合“0 到 100 到 100 的随机数”的要求。您开始设置A从 0 到 99B的随机数和从 0 到 9 的随机数。但是您的其余计算不执行“或”。

这个怎么样:

RANDOMIZE TIMER
A = INT(RND * 101)      // random number from 0 to 100
B = INT(RND * 11)       // random number from 0 to 10
C = INT(RND * 2)        // random number from 0 to 1
IF C = 0 THEN
   NUM = A
ELSE
   NUM = B
END IF

或更简化:

RANDOMIZE TIMER
NUM = INT(RND * 101)
IF INT(RND * 2) = 0 THEN
   NUM = INT(RND * 11)
END IF
于 2015-01-30T21:45:15.350 回答
2

试试这个兰德函数用作

NUM = Rand(0, 100)
于 2014-07-25T02:52:58.970 回答
1

要获取从 0 到任意数字的随机数,您可以使用以下程序 -

Randomize timer

Rand_num = INT(RND(1)*limit)+1

Where-

Rand_num= the random number

Limit = the last number like if you want from 0 to 100 then limit will be 100
于 2015-06-15T08:24:46.913 回答