powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / помогите с вероятностями
4 сообщений из 4, страница 1 из 1
помогите с вероятностями
    #38481373
Фотография babaEGA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите как лучше сделать. Пользователь производит некое действие (сейчас не важно какое), а далее он дополнительно участвует в лотерее. Вероятность выигрыша - 1 к 7.
Сейчас код выглядит так:
Код: c#
1.
2.
int result1 = (Environment.TickCount % 7);
if (result1 == 0) { поздравляем, вы выиграли  }  


Выигрышей при этом подозрительно мало (хотя возможно, просто малое количество участников - надо оценивать хотя бы 100).
Что не так и как лучше сделать? Спасибо.
...
Рейтинг: 0 / 0
помогите с вероятностями
    #38481432
Sergey TSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
babaEGA,

Если этот код будет запускаться через случайные промежутки времени (например, по нажатию кнопки пользователем), то его можно рассматривать как генерацию случайного числа. Если код будет работать в цикле, то возникнет зависимость генерируемых чисел от скорости выполнения кода, то есть числа не будут случайными. В этом случае лучше использовать Random.

А вообще посчитайте статистику выигрышей, их должно быть около 15% (1/7).
...
Рейтинг: 0 / 0
помогите с вероятностями
    #38481458
Белый ворон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так нормально отрабатывает.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
int total = 10000, wins = 0;
SpinWait spin = new SpinWait();
for (int i = 0; i < total; i++)
{
    if (((Environment.TickCount % 7)) == 0)
        wins++;
    spin.SpinOnce();
}
Console.WriteLine(wins);
...
Рейтинг: 0 / 0
помогите с вероятностями
    #38481631
Фотография babaEGA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey TSVbabaEGA,

Если этот код будет запускаться через случайные промежутки времени (например, по нажатию кнопки пользователем), то его можно рассматривать как генерацию случайного числа. Если код будет работать в цикле, то возникнет зависимость генерируемых чисел от скорости выполнения кода, то есть числа не будут случайными. В этом случае лучше использовать Random.

А вообще посчитайте статистику выигрышей, их должно быть около 15% (1/7).
Нет не в цикле. Код должен запускать по нажатию пользователем на кнопку.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / помогите с вероятностями
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]