开发者社区> 问答> 正文

Python是否具有模仿C的rand()序列的功能?

我正在寻找一个Python函数,该函数将模仿c中rand()(和srand())的行为,并具有以下要求:

我可以在srand()的Python中提供相同的纪元时间来播种该函数 如果为rand()%256提供了相同的种子,则其等效的char值应与c中的字符值相同。 到目前为止,我已经考虑了随机库和numpy的随机库。尽管C都提供了0到32767的随机数,但是它们的随机函数都产生了0到1的浮点数。尝试random.randint(0,32767)时,与在C函数中产生的结果不同。

TL; DR Python中是否存在遵循与C相同的随机序列的现有函数/库?

展开
收起
祖安文状元 2020-02-21 14:11:06 493 0
1 条回答
写回答
取消 提交回答
  • 您可以使用random.seed()。以下示例应在每次运行时打印相同的序列:

    import random
    random.seed(42)
    for _ in range(10):
        print(random.randint(0, 32768))
    
    

    更新:刚刚看到了OP的最后评论。不,由于其他注释中给出的原因,该代码不会为您提供与C代码相同的序列。两种不同的C实现也不相同。

    2020-02-21 14:11:14
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载