В следующем - весь вопрос.
Напишите программу, имитирующую бросание двух игральных костей. Программа должна использовать rand, чтобы бросить первый кубик, и должна снова использовать rand, чтобы бросить второй кубик. Затем следует рассчитать сумму двух значений. [Примечание: на каждом кубике может отображаться целое число от 1 до 6, поэтому сумма двух значений будет варьироваться от 2 до 12, причем 7 - наиболее частая сумма, а 2 и 12 - наименее частые суммы.] Обратите внимание, что там 36 возможных комбинаций двух кубиков. Ваша программа должна бросить два кубика 3600 раз. Используйте массив one_dimensional, чтобы подсчитать, сколько раз встречается каждая возможная сумма. Распечатайте результаты в табличном формате. Кроме того, определите, разумны ли итоги (то есть существует шесть способов выбросить 7, поэтому примерно одна шестая всех выпавших бросков должна быть 7).
Результат должен быть следующим:
Question 2
Please enter the seed : 2
Я не знаю, как создать «ожидаемый» столбец.
Вот моя программа: (Основная - Q2_main ())
#include <iostream>
#include <iomanip>
#include <cstdlib>
using namespace std;
double total_Array[11];
double expected_Array[11];
double actual_Array[11];
int seed;
void initialization_of_Array()
{
for (int counter=0; counter < 12; counter++)
{
total_Array[counter] = 0;
expected_Array[counter] = 0;
actual_Array[counter] = 0;
}
}
void show_heading_line()
{
cout << setw(5) << "Sum"
<< setw(10) << "Total"
<< setw(17) << "Expected"
<< setw(16) << "Actual"
<< endl;
}
void show_Data_Results_line(int sum, int total, double expected, double actual)
{
cout << setw(5) << sum
<< setw(10) << total
<< setw(16) << expected << "%"
<< setw(15) << actual << "%"
<< endl;
}
void calculation_of_total()
{
int die_1, die_2;
for (int counter = 1; counter <= 3600; counter++)
{
die_1 = 1 + rand() % 6;
die_2 = 1 + rand() % 6;
total_Array[((die_1 + die_2)-2)]++;
}
}
void calculation_of_expect()
{
}
void calculation_of_actual()
{
for (int counter = 0; counter < 11; counter++)
{
actual_Array[counter] = (total_Array[counter] / 3600.0) * 100.0;
}
}
void rollDice_Operation()
{
calculation_of_total();
calculation_of_expect();
calculation_of_actual();
}
void print_Result()
{
show_heading_line();
for (int counter = 0; counter <= 10; counter++)
{
show_Data_Results_line((counter+2), total_Array[counter], 1, actual_Array[counter]);
}
}
void Q2_main()
{
cout << setprecision(3) << fixed;
initialization_of_Array();
cout << "Please enter the seed : ";
cin >> seed;
srand(seed);
rollDice_Operation();
print_Result();
}
Кто-нибудь может дать мне несколько советов по работе с «ожидаемым» столбцом?
Спасибо за внимание
expected result
- это не результат вычисления, это математический результат, специфичный для задачи (сумма двух игральных костей). Вам не нужно ничего вычислять для этого столбца. - person zakinster   schedule 15.11.2013rand
в c ++:rand
считается вредным а> - person Mgetz   schedule 15.11.2013