Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: ЗАБЫЛ! Как сгенерировать случайное целое число?! Добавлено: 07.11.03 18:20  

Автор вопроса:  Alexander N | Web-сайт: sasha.samogon.info

Мне нужно сгенерить случайное целое число значением от 0 до n. Заранее благодарен

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 xaker^4



Вопросов: 4
Ответов: 7
 Профиль | | #1 Добавлено: 07.11.03 18:41

x=int(rnd*n)

P.S Я тоже вечный юзер!!!(xaker^2)

Ответить

Номер ответа: 2
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #2
Добавлено: 08.11.03 12:53

Randomize Timer

a = Int(Rnd(Timer)*(n+1))

Ответить

Номер ответа: 3
Автор ответа:
 Anry Deriabine



Вопросов: 14
Ответов: 29
 Профиль | | #3 Добавлено: 16.12.03 08:27

А как не целое??

Например: 12.40

Ответить

Номер ответа: 4
Автор ответа:
 boevik



Хранитель чата

ICQ: 137392264 

Вопросов: 8
Ответов: 557
 Web-сайт: www.hypertech.ru
 Профиль | | #4
Добавлено: 16.12.03 10:15

Anry Deriabine , так же как и в первом ответе, но не руби его int'ом, а округли round'ом

round(rnd*n,2)

Ответить

Номер ответа: 5
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #5
Добавлено: 17.12.03 11:53

Randomize

'X:=roandom(n); -0 это блин паскаль

X=int(rnd*n)

Ответить

Номер ответа: 6
Автор ответа:
 Millenium



ICQ: 629966 

Вопросов: 118
Ответов: 903
 Web-сайт: www.aliyev.us
 Профиль | | #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
Автор ответа:
 Pashenko



ICQ: 176176951 

Вопросов: 14
Ответов: 655
 Профиль | | #7 Добавлено: 17.12.03 12:11
Кстати, если не ошибаюсь, при отсутствии Randomize RND должна возвращать
одинаковые значения при каждом запуске программы, что бывает очень
полезно при отладке программы (это зависит от реализации бейсика, как в
VB - не помню).

Ответить

Номер ответа: 8
Автор ответа:
 Anry Deriabine



Вопросов: 14
Ответов: 29
 Профиль | | #8 Добавлено: 18.12.03 00:41

Вот так ответ!!

Супер!!!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам