【问题标题】:random number C [closed]随机数 C [关闭]
【发布时间】: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。谢谢!

标签: c random


【解决方案1】:

这绝对是一个数学问题而不是编程问题,但答案就在问题中:

int n = random(51)+50;
return n*n;

【讨论】:

    【解决方案2】:

    50 to 100 范围内选择一个随机数。然后返回它的正方形。

    int func(){
        int r = random(51); //to choose a random number from 0 to 50.
        r = r + 50; //to scale it to fit form 50 to 100
        return r*r;
    }
    

    【讨论】:

    • 顺便说一句,小罗是我的足球偶像。 :-)
    猜你喜欢
    • 1970-01-01
    • 2015-02-10
    • 2012-01-21
    • 1970-01-01
    • 2021-01-07
    • 1970-01-01
    • 2012-11-18
    • 2013-01-12
    • 1970-01-01
    相关资源
    最近更新 更多