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

C程序的随机数生成

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
关于C程序的随机数生成,有人说可以不用随机函数生成不重复的随机数,想请问下各位大神。
. f% ?4 F2 D$ R: Y7 [1 v

该用户从未签到

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

    [LV.1]初来乍到

    3#
    发表于 2020-8-25 18:19 | 只看该作者
    用随机函数
    * F' [6 I1 i* y6 l1 U& B

    该用户从未签到

    4#
    发表于 2020-8-25 18:20 | 只看该作者
    srand() 的作用是是一个种子,提供每次获得随机数的基数而已,rand()根据种子而产生随机数% r! j. k) q$ P2 F! _; x
      L5 S0 q/ r9 ?" w! A  N8 h
    注意
    7 v$ Y" ^& t: W# y) y- y
    ' s9 B& Y# O  P* y8 S. S1:srand() 里的值必须是动态变化的,否则得到的随机数就是一个固定数
    7 C9 C$ x/ a% F' y
    " k, l* k! V  ?5 d9 W6 u8 W# g7 X2:其实可以不用写srand() ,只用rand()就可以了,省事,简单,例子如下) C" N& P% C' d
    ' @$ |0 z) y- ]9 M
    如果我们想得到一个 0-60的随机数那么可以写成9 |9 M* _- q0 N- L
    ( q* w) c: p  ~# x* y; Y; i  a
    int i;
    ( a! m9 c, `( U5 o
    8 e4 k% w/ J3 ^9 e& u2 g. t6 ji=rand()%60;
    : G  \) c$ ?6 S( Y
    ! U$ S" L; l6 u就可以了。6 x5 t" X! I+ g! D4 O! Y) I

    & E4 P8 @; l. b  D当然最好有个统一的标注如下:" |* S& @" y2 P# ^0 z

    - V: \& D" o3 r( ?$ Wint i;& t/ G" u6 q0 T0 V! l$ d4 h2 N

    " w# J+ b# F8 \srand((unsigned)time( NULL ));) h- e4 N0 S0 X) l; v# Q7 w- S

    : L$ }8 ?1 f% H, x# R( ^i=rand()%60;% G9 z+ y1 L1 @3 j
    * v5 P- ?( N$ c. f2 ~  X# h/ _
    这样就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-7-22 03:32 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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