如何编写生成随机数的代码实现?

2026-04-29 11:512阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1231个文字,预计阅读时间需要5分钟。

如何编写生成随机数的代码实现?

C语言风格+C为随机数提供的工具是rand、srand和RAND_MAX,定义在stdlib.h中。+srand由rand设置种子,如果没有设置,相当于调用srand(1)。+rand产生伪随机数,范围是0到RAND_MAX,RAND_MAX至少是32767。+

C风格

C为随机数提供的工具是rand、srand和RAND_MAX,定义在<stdlib.h>中。

srand为rand设置种子,如果不设置,相当于调用过srand(1)。rand产生伪随机数,其范围为0到RAND_MAX,RAND_MAX至少是32767,在MSVC和GCC中这个值都是32767。

伪随机数看似随机,实则是有规律可循的,对于相同的种子值,rand产生的序列完全相同,也就是说无论你给srand一个什么数字,多次运行程序的结果都将相同——除非你给srand的是不同的数字,比如时间。<time.h>中的time函数返回整数表示的系统时间,可用于设置种子。

如果我们只需要0到9的随机数,可以把rand的返回值% 10;如果是42到233,可以写rand() % 192 + 42。下面的random函数封装了这项工作。注意只有在b - a + 1远小于或整除RAND_MAX时随机数的分布才比较均匀。

阅读全文

本文共计1231个文字,预计阅读时间需要5分钟。

如何编写生成随机数的代码实现?

C语言风格+C为随机数提供的工具是rand、srand和RAND_MAX,定义在stdlib.h中。+srand由rand设置种子,如果没有设置,相当于调用srand(1)。+rand产生伪随机数,范围是0到RAND_MAX,RAND_MAX至少是32767。+

C风格

C为随机数提供的工具是rand、srand和RAND_MAX,定义在<stdlib.h>中。

srand为rand设置种子,如果不设置,相当于调用过srand(1)。rand产生伪随机数,其范围为0到RAND_MAX,RAND_MAX至少是32767,在MSVC和GCC中这个值都是32767。

伪随机数看似随机,实则是有规律可循的,对于相同的种子值,rand产生的序列完全相同,也就是说无论你给srand一个什么数字,多次运行程序的结果都将相同——除非你给srand的是不同的数字,比如时间。<time.h>中的time函数返回整数表示的系统时间,可用于设置种子。

如果我们只需要0到9的随机数,可以把rand的返回值% 10;如果是42到233,可以写rand() % 192 + 42。下面的random函数封装了这项工作。注意只有在b - a + 1远小于或整除RAND_MAX时随机数的分布才比较均匀。

阅读全文