Страница: 1 |
Вопрос: ЗАБЫЛ! Как сгенерировать случайное целое число?! | Добавлено: 07.11.03 18:20 |
Автор вопроса: ![]() |
Мне нужно сгенерить случайное целое число значением от 0 до n. Заранее благодарен |
Ответы | Всего ответов: 8 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 4 Ответов: 7 |
Профиль | Цитата | #1 | Добавлено: 07.11.03 18:41 |
x=int(rnd*n) P.S Я тоже вечный юзер!!!(xaker^2) |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 08.11.03 12:53 |
Randomize Timer a = Int(Rnd(Timer)*(n+1)) |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 14 Ответов: 29 |
Профиль | Цитата | #3 | Добавлено: 16.12.03 08:27 |
А как не целое?? Например: 12.40 |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Хранитель чата ICQ: 137392264 Вопросов: 8 Ответов: 557 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 16.12.03 10:15 |
Anry Deriabine , так же как и в первом ответе, но не руби его int'ом, а округли round'ом round(rnd*n,2) |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 224 Ответов: 3777 |
Web-сайт: Профиль | Цитата | #5 | Добавлено: 17.12.03 11:53 |
Randomize 'X:=roandom(n); -0 это блин паскаль X=int(rnd*n) |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 629966 Вопросов: 118 Ответов: 903 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 17.12.03 11:57 |
бясняю! Итак... сначало выучим что такое RND (от англ. укароченно Random что в переводе обозначает случайно). Просто так команда RND генерирует случайные числа от 0 до 1. Чтоб получить случайное число остаточно написать такой код. R = RND А чтоб получить последнюю сгенерированое число то надо КТВ(0) А чтоб получить неппосредственно новый RND(1) А чтоб получить нечелое, надо его уможить например на 100 и если при простом RND, R равнялась например 0,5898541210, то при умножение его на 100 мы получим 58,98541210. А чтоб при каждом запуске программы не получать одни и те-же числа а получить в идеально случайне числа, то надо прослучировасть случайность, то есть использовать Randomize. Можно просто написать Randomize. Но для более лучшей случайности его можно сделать ещё в зависимости от времени... Это идеал идеалов. Так называемый Randomize Timer/ Он задаст новый делитель для Random в зависимости от времени и плюс поменяет деление на прочессный тракт. И всё... Так будет всё так... Пример: Dim R as Double Ranodmize Timer R = RND (1) * 100 |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 176176951 Вопросов: 14 Ответов: 655 |
Профиль | Цитата | #7 | Добавлено: 17.12.03 12:11 |
Кстати, если не ошибаюсь, при отсутствии Randomize RND должна возвращать одинаковые значения при каждом запуске программы, что бывает очень полезно при отладке программы (это зависит от реализации бейсика, как в VB - не помню). |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 14 Ответов: 29 |
Профиль | Цитата | #8 | Добавлено: 18.12.03 00:41 |
Вот так ответ!! Супер!!! |
Страница: 1 |
|