学习笔记|模板

C_CPP超大规模随机数

凝神长老 · 3月28日 · 2018年 · 945次已读

本文写于 2018年03月28日,距今已超过 1 年,距 2020年03月26日 的最后一次修改也已超过 3 个月,部分内容可能已经过时,您可以按需阅读。如果图片无法显示或者下载链接失效,请给我反馈,谢谢!


在解决百万皇后问题的时候,需要产生超大规模的随机数
然而rand()并不能完成这个需求
下面给出一个C++下的超大规模随机数生成器

typedef std::subtract_with_carry_engine<std::uint_fast64_t, 48, 5, 12> ranlux48_base;
ranlux48_base rb;

可以输出rb.min()rb.max()看看这个东西的范围
rb()生成一个随机数
数据的范围是unsingned long long int,如果需要使用类似int r = rb() % N的语句,需要做类型转换

超大规模随机数的应用,你可以查看:

百万皇后

2018-4-11 76
0 0 投票
Article Rating
订阅评论动态
提醒
guest
1 评论
最新
最旧 得票最多
行内反馈
查看所有评论