Генерация случайного числа: верхняя граница никогда не используется

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 859
Баллы
113
Давно уже заметил, что ГСЧ в зенке работает как-то не так, сегодня решил проверить, чтобы узнать наверняка.

Состряпал простейший набор кубиков:


и попал в бесконечный цикл.

Дело в том, что диапазон "от ... до ..." никогда не генерирует число, равное верхней границе. Поэтому в случае генерации "от 0 до 1" мы всегда будем получать "0".

Версия зенки: 5.9.3.1.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 654
Благодарностей
8 781
Баллы
113
Давно уже заметил, что ГСЧ в зенке работает как-то не так, сегодня решил проверить, чтобы узнать наверняка.

Состряпал простейший набор кубиков:


и попал в бесконечный цикл.

Дело в том, что диапазон "от ... до ..." никогда не генерирует число, равное верхней границе. Поэтому в случае генерации "от 0 до 1" мы всегда будем получать "0".

Версия зенки: 5.9.3.1.
уже обсуждалось..
это не баг, так задумано..
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 859
Баллы
113
уже обсуждалось..
это не баг, так задумано..
Как думаешь, ещё один топик на эту тему переубедит разрабов?..)
На самом деле даже для меня, как для программиста, это не очевидно. А для тех, кто не имеет навыков программирования так это вообще должно быть "швах".
 
  • Спасибо
Реакции: Sergodjan

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 040
Баллы
113
Я не программист но из школьной программы даже всё верно, по русски написано что до, а это означает до назначенного числа, вот если там стояло бы по 1-е, тогда и было бы это значение включительно
 
  • Спасибо
Реакции: Sergodjan

7make

Client
Регистрация
25.06.2011
Сообщения
1 547
Благодарностей
1 310
Баллы
113

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 7make какие-либо сделки.

Это не баг.

Есть спецификация C#.
https://msdn.microsoft.com/ru-ru/library/2dx6wyd4(v=vs.110).aspx

minValue
Тип: System.Int32
Включённый нижний предел возвращаемого случайного числа.
maxValue
Тип: System.Int32
Исключенный верхний предел возвращаемого случайного числа. Значение maxValue должно быть больше или равно minValue.
 
  • Спасибо
Реакции: Ribas

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Не баг, изменений не планируется
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)