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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
BuBlicK.SQP
0 / 0 / 0
Регистрация: 16.06.2010
Сообщений: 21
#1

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

26.09.2013, 20:27. Просмотров 470. Ответов 0
Метки нет (Все метки)

Всем привет.
Есть задача по теории вероятности. Условие:
Есть 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();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2013, 20:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задача с rand() в Dev C++ (C++):

Проблемы с rand() в Dev-C++ - C++
Всем привет=))))Форумчане, нужна ваша помощь!!!!У меня не очень получается с программированием.Мне кажется у меня проблемы с функцией...

Задача.Массивы.rand. - C++
Всем привет! Учусь на 1 курсе, делаю лабараторные работы.с++ Задача: Дана матрица f из целых малых величин,определить количество особых...

Dev-C++ Задача по массивам - C++
Задан массив с количеством элементов N. Сформировать 2 массива: в первый включить элементы исходного массива с четными номерами, а во...

Dev C++ задача на построение графика функции - C++
Недавно начал изучать C++, до этого пытался выучить Си. Следовательно, хочу переделать график ф-ции sin(x) из СИ в C++ по точкам. Вот...

Rand() - C++
metka: r1=rand()%2; r2=rand()%2; if(r1==a &amp;&amp; r2==b)goto metka; else arr=='O'; Собсно-это кусок кода...

rand() - C++
Как записать чтобы rand() возвращало true и false. Или подскажите другой способ. Мне нужно заполнить 3-х мерный массив.

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2013, 20:27
Привет! Вот еще темы с ответами:

rand от 1 до 16 - C++
Вопрос в том как в функции rand() на c++ задать диапазон чисел от 1 до 16

Rand() - C++
Ребята срочно nомогите , как сгенерировать с nомощью функции rand() рандомные числа 0 или 1 ?

rand - C++
srand(time(NULL)); int s = rand()%1000 +1; генерирует бред вроде 3,4,7,10,14,19,21,26,29... как сделать чтобы значения были...

rand - C++
всем привет) что означает вот это строка double value = (rand()%1000)/100.0 - 5.0; и чем она отличается от этой double value =...


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

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

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