C_CPP超大规模随机数

3月28日 · 2018年

在解决百万皇后问题的时候,需要产生超大规模的随机数
然而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的语句,需要做类型转换

2 条回应
验证码
输入运算符及数字使等式成立
{{comment.validate_num1}} = {{comment.validate_num2}}
点赞确定
退出登录?
取消 确定
  1. jxtxzzw2018-4-3 · 1:29

    所以评论到底支持Markdown了没?

    ABC

    123

    Hello world

    printf("Hello");
    

    那$$Mathjax$$呢?

    $$a^2+\frac{b}{c}=\log_{2}{3}$$

  2. jxtxzzw2018-4-1 · 15:12

    如果需要负数的随机数,其实可以利用int r = rb()的溢出来完成