在C/C++中获取大的随机数

栏目: C++ · 发布时间: 7年前

内容简介:标准rand()函数给出的数字对我来说不够大:我需要无符号长long.我们如何获得非常大的随机数?我尝试修改一个简单的哈希函数,但它太大了,运行时间太长,从不产生小于1e5的数字!!翻译自:https://stackoverflow.com/questions/28115724/getting-big-random-numbers-in-c-c

标准rand()函数给出的数字对我来说不够大:我需要无符号长long.我们如何获得非常大的随机数?我尝试修改一个简单的哈希函数,但它太大了,运行时间太长,从不产生小于1e5的数字!!

这是一个便携式C99解决方案,它返回一个随机的64位数字:

unsigned long long llrand() {
    unsigned long long r = 0;

    for (int i = 0; i < 5; ++i) {
        r = (r << 15) | (rand() & 0x7FFF);
    }

    return r & 0xFFFFFFFFFFFFFFFFULL;
}

说明:rand()返回0到RAND_MAX范围内的整数,RAND_MAX仅保证至少为32,767(15个随机位). long long保证有64位但可能更大.

翻译自:https://stackoverflow.com/questions/28115724/getting-big-random-numbers-in-c-c


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

机器学习实践指南

机器学习实践指南

麦好 / 机械工业出版社 / 2014-4-1 / 69.00

《机器学习实践指南:案例应用解析》是机器学习及数据分析领域不可多得的一本著作,也是为数不多的既有大量实践应用案例又包含算法理论剖析的著作,作者针对机器学习算法既抽象复杂又涉及多门数学学科的特点,力求理论联系实际,始终以算法应用为主线,由浅入深以全新的角度诠释机器学习。 全书分为准备篇、基础篇、统计分析实战篇和机器学习实战篇。准备篇介绍了机器学习的发展及应用前景以及常用科学计算平台,主要包括统......一起来看看 《机器学习实践指南》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具