回覆列表
  • 1 # 使用者6847486145697

    計算機產生的隨機數並不是真正隨機的,所以叫 偽隨機數。

    當“種子”固定時,它產生的隨機數序列是不變的,例如產生10個數,這10個數大小是變化的,但只要用這個種子,每次產生的這10個數序列,是一模一樣的。

    用 srand(time(0)); 設種子,就會因時間變化,得到不同的種子,那麼隨機數序列就會變化。

    time(0) 是當前時間,(精度可能是毫秒)。只要兩次跑程式啟動時間差別 超過1毫秒,兩個序列就不同了(隨機)。如果,時間差別不到1毫秒,兩個序列就沒變化。

    --------

    錯誤的程式:

    for (i=0;i

    srand(time(0)); // 5次的種子若不變

    printf("%d ",rand()); // 依次取 5個序列的 第一個數

    }

    5個數不變化。

    -------------------

    正確的程式:

    srand(time(0)); // 設1次種子

    for (i=0;i

    printf("%d ",rand()); //依次取1個序列的第1到第5個隨機數

    }

    5個數變化

  • 中秋節和大豐收的關聯?
  • 焊機正常為什麼焊條點不著?碰點有火花?