• 生成伪随机数 rand;srand函数


     1 相关内容来自鱼c论坛https://fishc.com.cn/forum.php?mod=viewthread&tid=84363&extra=page%3D1%26filter%3Dtypeid%26typeid%3D583
     2 
     3 rand 函数返回一个在 0 ~ RANDMAX 之间的伪随机整数,在调用 rand 函数前使用 srand 函数生成一个伪随机数种子序列。如果你在第一次调用 rand 函数之前没有调用 srand 函数,那么系统会为你自动调用 srand(1)。
     4 而使用相同的种子序列调用 range 函数会导致生成相同的随机数序列,同时,如果使用的生成伪随机数算法种子相同rand函数也会生成相同的随机序列 例如用srand(2),也会一直生成相同的随机序列。
     5     1.返回值:为0~RANDMAX之间的一个整数
     6     2.头文件 <stdlib.h>
     7 注:1.只要是算法生成就无法实现“真”随机数。通过提高随机数种子的复杂性和不可预见性,比如有人通过电阻和振荡器来生成热噪声作为随机数种子,就可以获得近乎无法破解的“真”随机数。
     8     2.通常为了得到一个近似“真”随机数的值,我们可以使用 time 函数返回从标准计时点到当前时间的秒数(从 197011 日的 UTC 时间 000 秒算起到现在所经过的秒数),
     9       是一个非常大且不重复的数值,用它来充当伪随机数种子再适合不过了。
    10 生成100以内随机数 则data = rand()%100 即可
    11 
    12 相关代码
    13 #include <stdio.h>
    14 #include <stdlib.h>
    15 #include <time.h>
    16 
    17 #define NUM 5
    18 
    19 int main(void)
    20 {
    21         int i;
    22         time_t t;
    23 
    24         // 使用当前时间值初始化伪随机数种子序列
    25         srand(time(0));
    26 
    27         // 生成0到99的伪随机数
    28         for (i = 0; i < NUM; i++)
    29         {
    30                 printf("%d\n", rand() % 100);
    31         }
    32 
    33         return 0;
    34 }
  • 相关阅读:
    51Nod 1119 机器人走方格 V2 组合数学 费马小定理
    Codeforces Round #439 div2 869A The Artful Expedient +869B The Eternal Immortality
    51Nod 1050 循环数组最大子段和 dp
    51Nod 1009 数字1的数量 数位dp
    51Nod 1082 与7无关的数 暴力打表(埃氏筛的感觉)
    POJ 2001 Shortest Prefixes
    字典树模板
    HDU 1251 统计难题
    kmp算法模板
    HDU 2087 剪花布条
  • 原文地址:https://www.cnblogs.com/ZhengLijie/p/12491415.html
Copyright © 2020-2023  润新知