Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
KOPC1886
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
#1

Бросание двух костей.

13.12.2010, 19:08. Просмотров 1452. Ответов 5
Метки нет (Все метки)

Помогите решить задачу про бросание костей:

Программа должна использовать rand для бросание 1 и 2 кости. Затем должна подсчитываться сумма двух значений. Поскольку каждая кость может показывать целое число от 1 до 6, то сумма может варьироваться от 2 до 12 с наиболее частым значением суммы 7 и наименее частыми 2 и 12. Используйте одномерный массив, чтобы подсчитывать, сколько раз выпадет каждая возможная сумма.

Решите пожалуйста, очень надо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2010, 19:08
Ответы с готовыми решениями:

Бросание двух игральных костей
Написать программу на C, которая моделирует бросание двух игральных костей....

Программа, которая моделирует бросание двух игральных костей
Напишите программу, которая моделирует бросание двух игральных костей. ...

Массив: Напишите программу, которая моделирует бросание двух игральных костей
Напишите программу, которая моделирует бросание двух игральных костей....

Смоделировать бросание каждым из двух игроков трех игральных кубиков
Смоделировать бросание каждым из двух игроков трех игральных кубиков.Определить...

Программа моделирующая бросание монеты
Написал программу моделирующая 100 бросаний монеты. Все работает, но почему-то...

5
Mayonez
382 / 274 / 53
Регистрация: 26.12.2009
Сообщений: 875
13.12.2010, 20:32 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
 
int main()
{
   int HOW = 10;        //количество бросков костей
   std::cout << "Введите количество попыток: ";
   std::cin >> HOW;
                        //количество возможных сум = 11
   int kol[11];
   for (int i = 0; i < 11; i++) kol[i] = 0;
                        //заполняем массив нулями
   while (HOW)
   {
      int k1, k2;       // 1 и 2 кубик
      srand(time(0));
      k1 = rand()%6+1;  //бросаем 1 кость
      srand(time(0));
      k2 = rand()%6+1;  //бросаем 2 кость
      kol[k1+k2-2]++;   //какая сумма выпала
      HOW--;            //уменьшаем количество бросков
   }
   
   for (int i = 0; i < 11; i++)
      std::cout << "Сумма " << i+2 << " выпадала " << kol[i] << " раз\n";
   return 0;
}
как-то неправильно она работает...

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
using namespace std;
 
int main()
{
   int HOW = 10;        //количество бросков костей
   cout << "Введите количество попыток: ";
   cin >> HOW;
                        //количество возможных сум = 11
   int kol[11];
   for (int i = 0; i < 11; i++) kol[i] = 0;
                        //заполняем массив нулями
   while (HOW)
   {
      int k1, k2;       // 1 и 2 кубик
 
      k1 = rand()%6+1;  //бросаем 1 кость
      k2 = rand()%6+1;  //бросаем 2 кость
      
      kol[k1+k2-2]++;   //какая сумма выпала
      HOW--;            //уменьшаем количество бросков
   }
   
   for (int i = 0; i < 11; i++)
      std::cout << "Сумма " << i+2 << " выпадала " << kol[i] << " раз\n";
 
   return 0;
}
так лучше
0
KOPC1886
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
13.12.2010, 20:46  [ТС] #3
Я в задаче забыл указать, что кости должны выбрасываться 36000 раз.
0
Mayonez
382 / 274 / 53
Регистрация: 26.12.2009
Сообщений: 875
13.12.2010, 21:06 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
using namespace std;
 
int main()
{
   int HOW = 36000;        //количество бросков костей
                        //количество возможных сум = 11
   int kol[11];
   for (int i = 0; i < 11; i++) kol[i] = 0;
                        //заполняем массив нулями
   while (HOW)
   {
      int k1, k2;       // 1 и 2 кубик
 
      k1 = rand()%6+1;  //бросаем 1 кость
      k2 = rand()%6+1;  //бросаем 2 кость
      
      kol[k1+k2-2]++;   //какая сумма выпала
      HOW--;            //уменьшаем количество бросков
   }
   
   for (int i = 0; i < 11; i++)
      cout << "Сумма " << i+2 << " выпадала " << kol[i] << " раз\n";
 
   return 0;
}
так пойдёт??
0
olok07
0 / 0 / 0
Регистрация: 01.12.2013
Сообщений: 1
04.12.2013, 17:42 #5
// нужно написать программу, моделирующую бросание двух костей.
// Естественно, что поочередно, т.е. один раз получаем рандомное число от 1 до 6 включительно и присваиваем его первой кости, а затем генерируем с помощью rand() второе рандомное число и присваиваем его второй кости.
//Далее программа подсчитывает сумму их значений. Ваша программа должна бросать две кости ровно 36000 раз.

#include <iostream>
#include <iomanip>
#include <stdlib.h>
#include <time.h>

void printar (int [], const int, const int);



using namespace std;

int main()
{
const int n = 11, l = 36000;
int ar [n] = {0};
int nam;
srand (time (0));
for (int i = 1; i < l; i++)
{
nam = 1 + rand () % 6;
nam += 1 + rand () % 6;
ar [nam - 2]++;
}

printar (ar, n, l);



return 0;
}

void printar (int ar [], const int n, const int l)
{
for (int i = 0; i < n; i++)
cout << setw (6) << i + 2;
cout << endl << endl;
for (int i = 0; i < n; i++)

cout << setw (6) << ar [i];
cout << endl << endl;
for (int i = 0; i < n; i++)
cout << setw (4) << "1/" << setw (2) << l / ar [i];
cout << endl;


}
//В первом ряду выводятся выпавшие сочетания очков, во втором ряду выводятся количества выпавших сочетаний,
// а в третьем - общее отношение всех моделирований к выпавшим данного типа.
0
Kuzia domovenok
2261 / 2030 / 459
Регистрация: 25.03.2012
Сообщений: 7,173
Записей в блоге: 1
04.12.2013, 18:03 #6
Mayonez, а ещё лучше использовать srand один раз в начале программы. Это сбросит сид генератора случайных чисел в сл учайное значение, связанное с текущим временем.
Если же вызывать srand в цикле, то генератор будет каждый раз сбрасываться в одно и то же значение: время-то на каждой итерации цикла не успевает измениться!
0
04.12.2013, 18:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2013, 18:03

Смоделировать бросание игрального кубика
Смоделировать бросание игрального кубика (то есть с помощью датчика случайных...

Программа бросания костей
Написал программу бросания 2-ух костей 36000 раз. При выполнении программы,...

Расстановка игральных костей
Программа играющая в игру «Расстановка игральных костей». Задана частичная...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru