Перейти к содержимому
Для публикации в этом разделе необходимо провести 50 боёв.
anonym_wBgJ3SN8Ie2Q

Содержимое контейнеров. Вопрос к разработчикам.

В этой теме 50 комментариев

Рекомендуемые комментарии

214
[LKB]
Участник
663 публикации
7 033 боя

 

Человек, который не видит, что при ограниченном диапазоне чисел шанс выпадения према будет выше, если открыть за сутки как можно больше контейнеров, называет меня гуманитарием? Ок, чё)

 

За сутки вопросов нет, я же и говорил, что чем больше тем лучше понятно даже ***, но тащемта 3 шанса из трёх в течении 3-х дней - монопенисуально. Поэтому ты гуманитарий. Ок, вот.

Рассказать о публикации


Ссылка на публикацию
237
Бета-тестер, Участник, Коллекционер
312 публикации
13 925 боёв

 

Человек, который не видит, что при ограниченном диапазоне чисел шанс выпадения према будет выше, если открыть за сутки как можно больше контейнеров, называет меня гуманитарием? Ок, чё)

 

Просьба привести математическое доказательство.

Рассказать о публикации


Ссылка на публикацию
Участник
5 548 публикаций

 

Не имеет смысла делать так, содержимое контейнера определяется в момент его получения игроком, вне зависимости от времени открытия.

Правильно получать радость и счастье сразу, а не откладывать в какое-то неопределенное будущее!

 

Sub_Octavian утверждал обратное.
  • Плюс 1

Рассказать о публикации


Ссылка на публикацию
1 628
Бета-тестер
2 859 публикаций
3 747 боёв

Sub_Octavian утверждал обратное.

 

Читай ответ. Супер контейнер

Рассказать о публикации


Ссылка на публикацию
Участник
789 публикаций

 

Читай ответ. Супер контейнер

Читайте свой же вопрос:

Просмотр сообщенияSpawn2002 (20 окт 2016 - 11:30) писал:

Если ли повышение шанса выпадания более ценного приза на каждом следующем контейнере в день?

Рассказать о публикации


Ссылка на публикацию
1 628
Бета-тестер
2 859 публикаций
3 747 боёв

Читайте свой же вопрос:

 

Ждем от вас захватывающее видео "Как я открывал 1000 контейнеров и ничего не выпало"...

Рассказать о публикации


Ссылка на публикацию
884
[LEV_]
Старший бета-тестер, Коллекционер
1 870 публикаций
28 337 боёв

- - - да

Рассказать о публикации


Ссылка на публикацию
Участник
789 публикаций

Ждем от вас захватывающее видео "Как я открывал 1000 контейнеров и ничего не выпало"...

Вы о чём вообще? Я надеюсь, Вы понимаете, что 

Просмотр сообщенияSpawn2002 (20 окт 2016 - 11:30) писал:

Если ли повышение шанса выпадания более ценного приза на каждом следующем контейнере в день?

и

... в какой момент определяется содержимое контейнера? ...

2 разных вопроса? Если нет - советую...кхм, даже не знаю что и посоветать в такой ситуации...

Изменено пользователем anonym_WBEKhnU0c8A5
  • Плюс 1

Рассказать о публикации


Ссылка на публикацию
1 628
Бета-тестер
2 859 публикаций
3 747 боёв

Вы о чём вообще? Я надеюсь, Вы понимаете, что 

2 разных вопроса? Если нет - советую...кхм, даже не знаю что и посоветать в такой ситуации...

Ок, признаю, не много не туда.

Просто тут дальше в теме пошло, что чем больше одновременно контейнеров открываешь тем выше шанс...

Рассказать о публикации


Ссылка на публикацию
182
[22CM]
Альфа-тестер, Коллекционер, Бета-тестер кланов
255 публикаций
8 254 боя

Итак. Написал простую программку, всё тривиально.

Немного нытья:

 Во-первых, my english is bed и огорчений, во-вторых, программка хоть и простая, но можно улучшить. Стилистически, например, отправить в отдельный метод моделирования прогон заданного количества экспериментов с выводом результатов, дабы не захламлять главный метод. Или функционально, составить и решить полноценную задачу на моделирование в лучших традициях курсовой работы по дисциплине "Моделирование систем" факультетов АСОИУ и подобных (добавить, например, информацию о среднем, максимальном и минимальном количестве полученных супер-призов в расчёте на пользователя). В-третьих, чёрт побери, давненько у меня не было практики на этом божественном С++, последние три года Java (стиль кода - некое смешение соглашений для Java и С++, не пугайтесь).

(типа отмазы, если нуб и опозорюсь)

Писал не в студии, как хотел изначально, а прямо в онлайне (COMPILE AND EXECUTE C++ ONLINE).

В качестве условностей следующие данные. Десять тысяч пользователей открывают контейнеры. В первой серии экспериментов у каждого по пять контейнеров (всего 50.000 контейнеров), во второй серии - по тысяче (всего 10.000.000 контейнеров). Вероятность выпадения супер-приза четыре сотых процента на контейнер (0.04%).

Пока писал программу, всё думал, зачем, ЗАЧЕМ? Почему я не сказал про эксперимент с монеткой, в котором каждый бросок не зависит от предыдущих. Но вспомнил, что тема коснулась тонкостей реализации случайности в программах.

Хватит пустой болтовни, вот программа:

 

#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;
//0.04% = 4 / 10000
static int winCoeffA = 4 - 1;
static int winCoeffB = 10000;

bool openContainer()
{
    if (rand() % winCoeffB <= winCoeffA)
    {
        return true;
    } else
    {
        return false;
    }
}

int model(int usersNumber, int containersNumber)
{
    int winCount = 0;
    for (int i = 0; i < usersNumber; i++)
    {
       for (int j = 0; j < containersNumber; j++)
       {
           if(openContainer())
           {
               winCount++;
           }
       }
    }
    return winCount;
}

int main()
{
    //инициализация механизма генерации псевдо-случайных чисел
    //рекомендуется делать один раз при начале выполнения программы
   srand (time(NULL));
   int experimentsNumber = 10; //количество экспериментов
   int usersNumber; //количество пользователей
   int containersNumber; //количество контейнеров для открытия у каждого пользователя
   
   cout << "----- START" << endl;
   
   //10000 пользователей по 5 контейнеров
   usersNumber = 10000;
   containersNumber = 5;
   cout << usersNumber << " users " << containersNumber << " containers " << endl;
   float winCountAverage = 0.0;
   float winCountAverageProc = 0.0;
   for (int e = 0; e < experimentsNumber; e++)
   {
       cout << "Experiment " << e + 1 << ":" << endl;
       int winCount = model(usersNumber, containersNumber);
       winCountAverage += ((float)winCount) / experimentsNumber;
       cout << "-- win count " << winCount << endl;
   }
   winCountAverageProc = (float)winCountAverage / usersNumber / containersNumber * 100.0;
   cout << "Average (by experiments) win count: " << winCountAverage << " (" << winCountAverageProc << " %)" << endl << endl;
   
   //10000 пользователей по 1000 контейнеров
   usersNumber = 10000;
   containersNumber = 1000;
   cout << usersNumber << " users " << containersNumber << " containers " << endl;
   winCountAverage = 0.0;
   winCountAverageProc = 0.0;
   for (int e = 0; e < experimentsNumber; e++)
   {
       cout << "Experiment " << e + 1 << ":" << endl;
       int winCount = model(usersNumber, containersNumber);
       winCountAverage += ((float)winCount) / experimentsNumber;
       cout << "-- win count " << winCount << endl;
   }
   winCountAverageProc = (float)winCountAverage / usersNumber / containersNumber * 100.0;
   cout << "Average (by experiments) win count: " << winCountAverage << " (" << winCountAverageProc << " %)" << endl << endl;
   
   cout << "----- END" << endl;
   
   return 0;
}

 

А вот и результаты:

 

----- STARTExperiment 1:
-- win count 16
Experiment 2:
-- win count 17
Experiment 3:
-- win count 16
Experiment 4:
-- win count 16
Experiment 5:
-- win count 24
Experiment 6:
-- win count 18
Experiment 7:
-- win count 25
Experiment 8:
-- win count 11
Experiment 9:
-- win count 12
Experiment 10:
-- win count 30
Average (by experiments) win count: 18.5 (0.037 %)

 

10000 users 1000 containers
Experiment 1:
-- win count 4026
Experiment 2:
-- win count 4158
Experiment 3:
-- win count 3960
Experiment 4:
-- win count 4081
Experiment 5:
-- win count 3982
Experiment 6:
-- win count 4008
Experiment 7:
-- win count 3953
Experiment 8:
-- win count 3921
Experiment 9:
-- win count 3973
Experiment 10:
-- win count 4031
Average (by experiments) win count: 4009.3 (0.040093 %)

 

----- END

Результаты кратко:

10000 users 5 containers

Average (by experiments) win count: 18.5 (0.037 %)

10000 users 1000 containers

Average (by experiments) win count: 4009.3 (0.040093 %)

 

Как видно, среднее количество супер-призов составляет четыре сотых процента от количества открытых контейнеров в любых случаях. Числа у алгоритма генерации случайных величин не кончились (такое предположение мелькнуло в комментариях) :)

 

Открыт для работы над ошибками и дальнейшего обсуждения.

Изменено пользователем alean

Рассказать о публикации


Ссылка на публикацию

×