c - C语言中Rand()基于什么算法?

标签 c algorithm random

我研究 Rand() 的源代码有一段时间了,但直到现在我还无法弄清楚该函数的全貌。

以下是我找到并研究的源代码:

rand.c

random.c

有人可以为我提供一些建议或帮助吗?

感谢一百万!

最佳答案

不需要基于任何特定算法,但许多人会使用linear congruential生成序列的算法。这基本上按照以下方式改变了种子:

seed = (seed * multiplier + adder) % modulo

然后将种子的某些部分作为随机值传递。 multiplieraddermodulo 的值可能会有很大差异。

关于c - C语言中Rand()基于什么算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30161790/

相关文章:

java - 为 DNA 声明一个新的数据类型

使用 GNU make 启用分析功能来编译包

c++ - 只读内存映射寄存器在 C 中定义为 `volatile const` 但在 C++ 中仅定义为 `volatile`

Python-更改列表中值的随机频率

r - 如何在 R 中生成具有恒定 colSum 值的随机矩阵?

c - 如何使用 libav/ffmpeg 编码 24 位音频?

algorithm - 从二进制数中提取奇数位的最佳方法

c# - C# 中的通用二进制搜索

algorithm - Dijkstra 算法 : Do I iterate through the neighbors or the children?

c# - 如果对于随机数 C#.net,则替代 else