編寫一個隨機從八個對象中選擇一個程序的程序。
每個物體可以是紅色,藍色,橙色或綠色,它可以是球體或立方體。
假設袋子中每個組合包含一個物體(一個紅球,一個
紅色立方體,一個橙色球,一個橙色立方體等等)。編寫類似於
的代碼 例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