You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中模拟C语言rand()函数?实现指定种子的随机值生成

用ctypes模拟C语言rand()生成逻辑

由于Python内置的random模块使用的随机数算法和C标准库的rand()不同,要匹配你提供的C代码逻辑,直接用ctypes调用系统C库的srand()和rand()即可,已知种子时能精准复现后续随机值。

实现代码

import ctypes
import platform

# 加载对应平台的C标准库
if platform.system() == "Windows":
    c_stdlib = ctypes.CDLL("msvcrt")
else:
    # Linux/macOS通用加载方式
    c_stdlib = ctypes.CDLL("libc.so.6")

# 替换为你已知的种子值
known_seed = 123456
c_stdlib.srand(known_seed)

# 生成和C代码一致的随机值
random_value1 = c_stdlib.rand()
random_value2 = c_stdlib.rand()
random_value3 = c_stdlib.rand()

print(random_value1, random_value2, random_value3)

说明

  • 代码会根据操作系统加载对应的C标准库:Windows用msvcrt,Linux和macOS用libc.so.6
  • 调用c_stdlib.srand(known_seed)设置种子,和C代码的srand(seed)完全等价
  • 连续调用c_stdlib.rand()就能得到和C代码相同的随机值序列

内容的提问来源于stack exchange,提问作者bd55

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 18:36:23