生成随机数,但需要有一个特定的数字
Generate random number but required to have a certain number
我正在尝试创建一个4
不同数字的序列,并从0
到100
随机生成,但它必须有数字86
,以下是我所做的:
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
srand((unsigned) time(NULL));
// Loop to get 3 random numbers
for(int i = 0; i < 3; i++)
{
int random = rand() % 101;
// Print the random number
cout << random << endl;
}
cout << 86 << endl;
}
但我不想把86
放在最后,有什么方法可以把它放在序列中的任何随机位置吗?谢谢
我使用现代C++的方法
#include <algorithm>
#include <iostream>
#include <array>
#include <random>
namespace {
std::default_random_engine generator(std::random_device{}());
int random(int min, int max) {
return std::uniform_int_distribution<int>{min, max}(generator);
}
}
int main() {
std::array<int, 4> elements = {86};
for (int i = 1; i < elements.size(); ++i) {
elements[i] = random(0, 100);
}
std::shuffle(elements.begin(), elements.end(), generator);
for (int nbr : elements) {
std::cout << nbr << "n";
}
return 0;
}
你可以完全按照你说的做——把它放在一个随机的位置。首先,将要生成的四个数字存储在一个数组中;然后,你决定哪个位置是86;然后,你填写剩下的并打印出来。
int main()
{
srand((unsigned) time(NULL));
int nums[4];
int loc86 = rand() % 4;
for(int i = 0; i < 4; i++)
{
nums[i] = i != loc86 ? rand() % 101 : 86;
}
for(int i = 0; i < 4; i++)
{
// Print the random number
cout << num[i] << endl;
}
}
有点离题,但如果您真的关心随机数生成的精度(并且它足够好地接近均匀随机分布(,您可以使用这里描述的实用的c++随机数生成器。
的两种方法
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
srand((unsigned) time(NULL));
// Take a random position
const int j = rand() % 4;
// Loop to get 3 random numbers
for(int i = 0; i < 4; i++)
{
if (i == j)
cout << 86 << endl;
else
cout << rand() % 101 << end;
}
}
#include<iostream>
#include<algorithm>
#include<cstdlib>
using namespace std;
int main()
{
srand((unsigned) time(NULL));
// Fill and shuffle the array
int r[4] = {86, rand() % 101, rand() % 101, rand() % 101};
std::shuffle(std::begin(r), std::end(r));
for(int i = 0; i < 4; i++)
cout << r[i] << end;
}
相关文章:
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 如何获取一个数字的前3位
- VSCode-有一个红色下划线,但程序构建和运行正确,并且出现配音错误
- 如果有一个模板构造函数只有一个泛型参数,为什么我必须有一个复制构造函数
- 有没有可能有一个只有ADL才能找到的非好友功能
- 我有一个对象,它将在整个程序的持续时间内实例化,但一个类成员不会,我应该动态分配它吗?
- 我的程序有一个保存配置文件的GUI,如何双击此配置文件以直接加载带有配置数据的GUI?
- 是否有一个 std::set 函数来确定不超过数字 x 的最大元素?
- C++从文件中读取不同类型的数据,直到有一个以数字开头的字符串
- 我有n个空格,在每个空格中,我可以放置一个数字0到m.编写一个程序来输出所有可能的结果.需要帮助:)
- 有没有办法意识到一个数字是否由于转换而被截断
- C++中是否有一个浮点文字后缀来使数字的精度翻倍
- 正在检查排序列表中是否有一个范围内的数字
- 如果我有一个固定大小的填充ascii数字的char数组,我知道它指的是一个无符号整数,那么将其转换为无符号整数的最快方法
- 是否有一个随机函数可以生成 0 到 1 之间的数字
- 从序列中减去一个数字后,剩余的数字中有多少是正数
- 如何在字符串中识别一个字母旁边有一个数字
- 在一个有连续数字的向量中找到一个数字
- 有一个由n个数字组成的数组.一个数字重复n/2次,而其他n/2个数字是不同的