【发布时间】:2012-10-14 16:58:00
【问题描述】:
必须编写一个函数,返回一个从 50 到 100 的平方数,不使用种子且不带参数。
我知道如何生成一个固定范围内的随机数(例如 0 到 99):
int n;
n=rand(100); /* n is random number in range of 0 - 99 */
编辑:
顺便说一句,我使用了rand(),每次运行它都会得到相同的结果。我知道它是因为我的编译器,有没有办法改变它(记住不要使用种子)
非常感谢任何想法!
编辑 2: 好的,我想出了如何满足所有要求。谢谢你们! Massimiliano 是第一个给我正确想法的人。
【问题讨论】:
-
在 [0 50] 范围内生成一个随机数。然后加 50。然后平方。
-
随机数如何连续,如果它们是连续的,它们很容易预测,所以根本不是随机的。我会使用
lrand48() % 100 + 200来获得一个介于 200 和 300 之间的随机数,然后根据需要对其进行平方。 -
@RonaldinhoState 序号的正方形不能连续!使用种子获得更好的结果。
-
@RonaldinhoState -1 看完this.
-
将解决方案归功于 Massimiliano。谢谢!