编写一个随机从八个对象中选择一个程序的程序。
每个物体可以是红色,蓝色,橙色或绿色,它可以是球体或立方体。
假设袋子中每个组合包含一个物体(一个红球,一个
红色立方体,一个橙色球,一个橙色立方体等等)。编写类似于
的代码 例5.3,使用两个字符串数组 - 一个用于识别颜色,另一个用于识别形状
。C++选择多个不重复的随机项目
我想写一个程序来执行上述练习 - 我遇到的问题是同一个对象可以每次选择多次。
这是到目前为止的代码
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <cmath>
using namespace std;
int rand_0toN1(int n);
void choose_object();
char *colour[4] =
{"Red", "Blue", "Orange", "Green"};
char *object[2] =
{"Ball", "Cube"};
int main()
{
int n, i;
srand(time(NULL)); // Set seed for randomizing.
while (1) {
cout << "Enter no. of objects to draw ";
cout << "(0 to exit): ";
cin >> n;
if (n == 0)
break;
for (i = 1; i <= n; i++)
choose_object();
}
return 0;
}
void choose_object() {
int c; // Random index (0 thru 4) into
// colours array
int o; // Random index (0 thru 2) into
// object array
c = rand_0toN1(4);
o = rand_0toN1(2);
cout << colour[c] << "," << object[o] << endl;
}
int rand_0toN1(int n) {
return rand() % n;
}
标准程序是生成的可能性列表,随机播放它们,然后返回那些在(洗牌)的顺序。 – 2011-12-15 23:07:09
@MooingDuck对于我见过的这种类型的东西,这不是标准。设想10个标准,每个标准有5个选项 - 您想要生成近1000万个条目来寻找少数? : - \ – corsiKa 2011-12-15 23:11:36