gpt4 book ai didi

c++ - 生成具有定义数据类型的随机数

转载 作者:搜寻专家 更新时间:2023-10-31 01:08:31 25 4
gpt4 key购买 nike

我想生成一个很长的整数随机数,我希望它是 224 位随机数。但我能找到的最长数据类型是 unsigned long long,它是 64 位。首先我这样做了:

#include <iostream>
#include <string>
#include <stdint.h>
#include <stdlib.h>
#include <ctime>
#include "random.h"
int main()
{
srand(time(0));

unsigned long long num1 = rand();
unsigned long long num2 = rand();

cout<<"1st random number = " << num1 << endl;
cout<<"2nd random number = " << num2 << endl;

return 0;
}

我的想法是定义 224 位整数的新数据类型。所以我尝试制作新的 random.h 文件:

class int224 
{
unsigned int data[7];
}

然后修改第一段代码:

#include <iostream>
#include <string>
#include <stdint.h>
#include <stdlib.h>
#include <ctime>
#include "random.h"
int main()
{
srand(time(0));

int224 num1 = rand();
int224 num2 = rand();

cout<<"1st random number = " << num1 << endl;
cout<<"2nd random number = " << num2 << endl;

return 0;
}

但是它返回了错误,也许我在定义新数据类型时犯了一个错误,我很感激任何帮助。谢谢。

最佳答案

我想到了以下,不确定这是否适合你

#include <iostream>
#include <chrono>
#include <random>

struct int224
{
unsigned int data[7];

int224 operator+(int224);
int224 operator-(int224);

int224 ()
{
unsigned seed =
std::chrono::system_clock::now().time_since_epoch().count();

std::minstd_rand0 mygen (seed);

for(auto i=0;i<7;i++)
data[i]=mygen();
}

friend std::ostream& operator<<(std::ostream&, const int224&);
};

std::ostream& operator<<(std::ostream& os, const int224& r)
{
for(auto i=0;i<7;i++)
os<<r.data[i];
return os;
}

int main ()
{

int224 r;
std::cout<<r<<std::endl;

int224 j;
std::cout<<j;

return 0;
}

关于c++ - 生成具有定义数据类型的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17945602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com