找回密码
 注册
关于网站域名变更的通知
查看: 485|回复: 5
打印 上一主题 下一主题

C程序的随机数生成

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-8-25 17:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
关于C程序的随机数生成,有人说可以不用随机函数生成不重复的随机数,想请问下各位大神。
7 E/ c# d# w' R

该用户从未签到

2#
发表于 2020-8-25 18:15 | 只看该作者
伪随机电路
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2020-8-25 18:19 | 只看该作者
    用随机函数
    : A* H: H" Q5 t( B# T* I

    该用户从未签到

    4#
    发表于 2020-8-25 18:20 | 只看该作者
    srand() 的作用是是一个种子,提供每次获得随机数的基数而已,rand()根据种子而产生随机数$ r7 E+ h; H7 T- |
    6 N; f2 h7 T; K. a) C6 c' C
    注意0 \& o) [9 C, h* M* R7 R
    & k& I; U8 I( ?# F5 }9 ~1 O
    1:srand() 里的值必须是动态变化的,否则得到的随机数就是一个固定数
    ; G: H+ E" c2 M& L5 |
    ; U+ S7 J& U6 ?% c+ H( b6 k( }2:其实可以不用写srand() ,只用rand()就可以了,省事,简单,例子如下4 n& p( L! i& c5 j

    ( Q" P- b2 S0 D3 r. T2 ?如果我们想得到一个 0-60的随机数那么可以写成( n9 n2 F" l$ q9 [+ F$ r

    * r/ P" T8 v3 G* [7 g% ?  Nint i;
    ' \3 Y6 w! j: R/ k3 F& j" @# s; x4 Y% l) b+ V9 J: J
    i=rand()%60;
    $ `# m/ g* z1 T% J/ Y6 o& v
    1 H2 L: x% o, B  L0 P( ?就可以了。
    ; T$ m" g6 t0 D/ \
      k. E  K9 v# l, x1 w当然最好有个统一的标注如下:+ x/ K' A. D3 y' u9 m# X; @* H1 o
    ; h" Q( K+ Z* b3 u
    int i;
      I% S; P& p3 P9 z$ I4 ^
    , b; b% L" E/ w' {2 q3 U2 \srand((unsigned)time( NULL ));% ]1 R7 u/ F* c% R
    4 Y" T% |8 P% V% f; J# i0 W! s7 S& Q4 c! M
    i=rand()%60;
    0 |# }8 ]# |$ ]3 ^: w6 j, ?- `3 t" z
    这样就OK了。

    该用户从未签到

    5#
    发表于 2020-8-26 10:26 | 只看该作者
    也可以用adc的最低位做种子,这样就更接近随机了

    该用户从未签到

    6#
     楼主| 发表于 2020-8-26 11:50 | 只看该作者
    这个我有试过, 从1000里面随机100个不重复的数,会有重复的。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-8-20 07:51 , Processed in 0.125000 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表