Форум программистов, компьютерный форум CyberForum.ru

Задача с rand() в Dev C++ - C++

Восстановить пароль Регистрация
 
BuBlicK.SQP
0 / 0 / 0
Регистрация: 16.06.2010
Сообщений: 21
26.09.2013, 20:27     Задача с rand() в Dev C++ #1
Всем привет.
Есть задача по теории вероятности. Условие:
Есть 100 урн. В них произвольно, по одному бросаются шары. Найти вероятность, что при наличии хотя бы 2 шаров в 20 урнах, существует хотябы 5 пустых урн.

Задачу разбил на куски. Осознал. Кажется проблема только с rand() функцией. У меня вероятность 100% выходит и опыт почти всегда успешен. Что-то с неправильным использованием rand() или алгоритмом?

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
29
30
31
32
33
34
35
36
37
38
39
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
 
int custom_random(int number){
    while (number>99){//Если сгенерированое число больше 99
        number=(int)(number/15); //Уменьшаем это число в 15 раз
    }   
}
 
int experiance(){
     int array[99], n;
     int full=0, empty=100; //В начале все урны пустые и нет полных
     for (int i=0; i<100; i++)array[i]=0;
     while (full<=20){ //Если ещё нет 20 полных - продалжаем кидать шары
         n=custom_random(rand()); //Через рандом, произвольно выбираем в какую урну бросить шар
         array[n]++; //Увеличиваем число шаров в урне    
         if (array[n]==1) empty--; //Отмечаем сколько пустых
         if (array[n]==2) full++; //Отмечаем сколько полных
     }
     if (empty>=5) return 1;
     else return 0;
}
 
int main(){
     int i, event_was;
     float probability = 0.0;    //Обнуляем вероятность
     event_was = 0; //Обнуляем число удачных опытов
     for (i=0; i<1000; i++){
         if ( experiance() ){//Если опыт удался
           event_was++; //Увеличиваем счетчик удачных опытов      
         }   
     }
     printf ("\nEvent was succesed %i amounts",event_was);
     probability=(float) event_was/1000;     
     
     printf("\nThe probability of exp. is: %f%%", probability); 
     getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2013, 20:27     Задача с rand() в Dev C++
Посмотрите здесь:

C++ rand()
Проблемы с rand() в Dev-C++ C++
C++ Задача.Массивы.rand.
rand() C++
Dev C++ задача на построение графика функции C++
rand()%(-20)%(20); C++
Dev-C++ Задача по массивам C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 00:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru