在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


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

查看所有标签

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

游戏引擎架构

游戏引擎架构

[美] Jason Gregory (杰森.格雷戈瑞) / 叶劲峰 / 电子工业出版社 / 2014-1 / 128.00元

《游戏引擎架构》同时涵盖游戏引擎软件开发的理论及实践,并对多方面的题目进行探讨。本书讨论到的概念及技巧实际应用于现实中的游戏工作室,如艺电及顽皮狗。虽然书中采用的例子通常依据一些专门的技术,但是讨论范围远超于某个引擎或API。文中的参考及引用也非常有用,可让读者继续深入游戏开发过程的任何特定方向。 《游戏引擎架构》为一个大学程度的游戏编程课程而编写,但也适合软件工程师、业余爱好者、自学游戏程......一起来看看 《游戏引擎架构》 这本书的介绍吧!

html转js在线工具
html转js在线工具

html转js在线工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具