新手求助!~请老手们帮帮忙

waaaaaa 2005-10-24 06:49:56
最近刚学C++遇到一题怎么想也不会请各位大哥大姐帮帮忙:
1-30这30个数分成3组(1-10,11-20,21-30),
在(1-10)这组中随机取出3个数,
在(11-20)这组中随机取出2个数,
在(21-30)这组中随机取出1个数,
这6个数组成一个新的数组,
请输出所有的可能组成的数组(数字从小到大排列)

这个程序的C++代码怎么写啊!~请多多帮忙在这里我先谢谢大家拉
...全文
126 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ghostzf 2005-10-26
  • 打赏
  • 举报
回复
/*1-30这30个数分成3组(1-10,11-20,21-30),
在(1-10)这组中随机取出3个数,
在(11-20)这组中随机取出2个数,
在(21-30)这组中随机取出1个数,
这6个数组成一个新的数组,
请输出所有的可能组成的数组(数字从小到大排列)
*/

#include <iostream.h> // Include input/output stream header
#include <stdlib.h> // Include stantard library header
#include <time.h> // Include time header

int main()
{
int gStore[6]; // Initialize a grid to store the random number

srand(time(NULL)); // Get the random seed from the time function

for (int i = 0; i < 3; i++) // Generate the first 3 numbers
{
gStore[i] = rand() % 10 + 1;
}

for (int j = 3; j < 5; j++)
{
gStore[j] = rand() % 10 + 11;
}

gStore[5] = rand() % 10 + 21;

for (int k = 0; k < 6; k++) // Output the grid
{
cout << gStore[k] << endl;
}

return 0;
}

这里实现随机生成三种数分别放如储存数组.没有做你要求的输出所有可能.因为那样正如楼上所说,那就没必要用随机了,既然是穷举,直接用三个for嵌套生成所有组合就可以了.
排列大小也没做了,那你总能做出来吧.呵呵
xiaocai0001 2005-10-24
  • 打赏
  • 举报
回复
在网上搜索组合数生成的算法
waaaaaa 2005-10-24
  • 打赏
  • 举报
回复
谢谢这为朋友的帮忙,关键是怎么写,我现在就是不会能不能写出个程序来让我好弄明白啊!
我刚学,现在没有一点头绪....再次谢谢拉!~
xiaocai0001 2005-10-24
  • 打赏
  • 举报
回复
用程序写的话, 主要就是组合数的生成, 生成的组合数, 其他的就好办了.
xiaocai0001 2005-10-24
  • 打赏
  • 举报
回复
请输出所有的可能组成的数组
------------------------

都需要输出可能的所有组合, 上面的也无所谓随机取法了, 这是一个排列组合问题.
一共的可能数为
C(10,3)*C(10,2)*C(10,1)
= 54000 (种)

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧