如何在特定范围和总和中生成随机数
How to Generate random number in a specific range and sum?
这不是我的作业;当我阅读有关C 时,这就是我所提出的。我仍然是初学者。我的问题是我可以生成具有特定范围和总和的随机数。例如,我想生成15个数字,范围从2到5,总和为60。从我阅读的书中,我可以使用#include生成随机数。uniform_int_int_distribution RandomInt {2,5};//它可以帮助我生成2到5的随机数。default_random_engine {static_cast(time(time(0))};//如果我第二次运行程序,它可以帮助我生成不同的数字序列。它实际上在时间(0)中使用#include。
#include <iostream>
#include <ctime>
#include <random>
using namespace std;
int main()
{
int randomNumber = 0;
default_random_engine engine{ static_cast<unsigned int>(time(0)) };
uniform_int_distribution<unsigned int> randomInt{ 1, 6 };
for (unsigned int i = 0; i <= 10; ++i)
{
randomNumber = randomInt(engine);
cout << randomNumber << endl;
}
system("PAUSE");
return 0;
}
这只是基本上是如何生成不同数字
我怀疑这个问题只有一种解决方案:
2a 3b 4c 5d = 60
a b c d = 15
a,b,c,d> 0
它将使用线性编程来解决。
解决了这一问题后,您可以采用解决方案并进行随机洗牌以获取随机排列。
好处是您将获得统一的随机排列。
如果您不关心效率和解决方案分布的均匀性,则可以在2到5之间生成15个数字,看看它们是否总和60,如果不生成15个数字,等等
相关文章:
- 在一定范围内生成随机数,其中一定百分比为特定值
- 在一定范围内C++生成随机数
- 使用 std::binomial_distribution 在范围之间生成随机数
- 从大范围内生成一个随机数,但从大范围的中间开始生成较小的范围
- std::d iscrete_distributed of a 指定范围的随机数
- 如何在范围内生成随机数
- 用具有不同范围的均匀分布的随机数填充多维矩阵
- 将范围随机数保存到数组而不重复的函数
- 如何在特定范围和总和中生成随机数
- 具有从特定范围的随机数初始化特征矩阵或向量初始化特征矩阵或向量的有效方法
- 随机数生成器与范围?C
- 在一定范围内生成随机数
- 如何使用Linux GetRandom系统调用来在范围内生成一个随机数
- 如何在由C++中的负值和正值组成的范围内生成随机数
- c++随机数生成器,允许用户选择范围
- 从一个特定的范围中生成一定数量的唯一随机数
- 十进制 在包括负数的范围内生成随机数
- 定义和播种具有全局范围的伪随机数生成器(C++)
- mt19937 随机数范围 - 奇怪的输出 00A8106E
- 应用于单词数组的随机数范围