Rnd

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Malone32®
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 116
Зарегистрирован: 23.01.2005 (Вс) 21:19
Откуда: Оттуда

Rnd

Сообщение Malone32® » 23.01.2005 (Вс) 22:21

Строю прогу (сменщик обоев для рабочего стола). Делаю так, чтобы при щелчке на Command1 в Image1 в случайном порядке (rnd) загружалось по одному изображению из List1. Но вот что я замечаю: при каждом запуске проги и щелчке на Command1 почему-то загружаются одни и те же изображения и в той же самой последовательности, а мне надо чтобы с каждым разом загружались РАЗНЫЕ..... Что я не так сделал??

Private Sub Command1_Click()
Image1.Picture = LoadPicture(File1.Path & "\" & File1.List(Int(File1.ListCount * Rnd)))
End Sub


Private Sub Form_Load()
File1.Path = "F:\Docs\Pictures\Women"
End Sub

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 23.01.2005 (Вс) 22:30

В начале процедуры используй команду Randomize. Лучше Randomize Timer.

Malone32®
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 116
Зарегистрирован: 23.01.2005 (Вс) 21:19
Откуда: Оттуда

Сообщение Malone32® » 23.01.2005 (Вс) 22:42

Ооооооооооооо, большое тебе спасибо!!!!!!

Zer
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 460
Зарегистрирован: 26.09.2003 (Пт) 13:08
Откуда: Нижний Новгород

Сообщение Zer » 23.01.2005 (Вс) 23:09

Угу... Енто, собственно, ещё и в QBasic'е было...
А никто не знает алгоритм выбрасывания Rnd(Мда, какой-же это тогда Rnd, если есть алгоритм...)??? Ведь по-моему такой команды на асме нет, а значит енто происходит на праграмном уровне....
Microsoft DirectX - Маломягкий Прямой Х...
Не откладывай на завтра то, что можно выпить сегодня...

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 23.01.2005 (Вс) 23:18

Учите матчасть, товарисч 8) ;)
http://algolist.manual.ru/maths/generator/index.php

Zer
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 460
Зарегистрирован: 26.09.2003 (Пт) 13:08
Откуда: Нижний Новгород

Сообщение Zer » 24.01.2005 (Пн) 23:45

Огромный спасиба... :P
Microsoft DirectX - Маломягкий Прямой Х...
Не откладывай на завтра то, что можно выпить сегодня...

Eduard
Бывалый
Бывалый
 
Сообщения: 254
Зарегистрирован: 31.08.2003 (Вс) 17:12
Откуда: Эстония

Сообщение Eduard » 30.01.2005 (Вс) 3:22

A.A.Z. писал(а):В начале процедуры используй команду Randomize. Лучше Randomize Timer.

А чем отличается просто Randomize от Randomize Timer ??
On Fatal Error Resume Next

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 30.01.2005 (Вс) 8:46

Eduard писал(а):
A.A.Z. писал(а):В начале процедуры используй команду Randomize. Лучше Randomize Timer.

А чем отличается просто Randomize от Randomize Timer ??
Да ничем, наверное:
If you omit number, the value returned by the system timer is used as the new seed value
Изображение

Zer
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 460
Зарегистрирован: 26.09.2003 (Пт) 13:08
Откуда: Нижний Новгород

Сообщение Zer » 02.02.2005 (Ср) 0:31

Без Randomize Timer бэйсик выкидыввает одни и те-же значения в том-же порядке при разных запусках...

P.S. Кстати по той ссылке: Там всё-равно не RND, а просто равномерное распределение чисел по всему диапазону...
Microsoft DirectX - Маломягкий Прямой Х...
Не откладывай на завтра то, что можно выпить сегодня...

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 02.02.2005 (Ср) 12:57

Zer писал(а):P.S. Кстати по той ссылке: Там всё-равно не RND, а просто равномерное распределение чисел по всему диапазону...


А не есть ли это RND. Что такое, по-Вашему, RND? Появление случайных чисел, каждое из которых не зависит от предыдущего, или коэффициент корреляции равен нулю. А также появление любого выбранного числа из диапазона равновероятно...

Zer
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 460
Зарегистрирован: 26.09.2003 (Пт) 13:08
Откуда: Нижний Новгород

Сообщение Zer » 02.02.2005 (Ср) 20:15

Да, я именно про RND, которое совершенно случайно и не зависит от предыдущего...
Microsoft DirectX - Маломягкий Прямой Х...
Не откладывай на завтра то, что можно выпить сегодня...

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 02.02.2005 (Ср) 21:08

>Да, я именно про RND, которое совершенно случайно и не зависит от предыдущего...

Кхе-кхе, в русском языке это называется генератор псевдослучайных чисел. Псевдо - потому, что зависимость на самом деле существует. Вот с корреляцией - еще куда ни шло...

Zer
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 460
Зарегистрирован: 26.09.2003 (Пт) 13:08
Откуда: Нижний Новгород

Сообщение Zer » 02.02.2005 (Ср) 21:22

Не, не.... Вообще случайных чисел... Вот, к примеру, хватаешься за два провода... Убьёт или нет? RND.
Microsoft DirectX - Маломягкий Прямой Х...
Не откладывай на завтра то, что можно выпить сегодня...

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 02.02.2005 (Ср) 23:51

Чисто случайные генераторы программными не бывают, только аппаратными.

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

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 02.02.2005 (Ср) 23:55

Да нет, тут всё как раз очень линейно получается: 0 или 1, причём скорее ноль :D

Zer
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 460
Зарегистрирован: 26.09.2003 (Пт) 13:08
Откуда: Нижний Новгород

Сообщение Zer » 03.02.2005 (Чт) 20:01

Ну с аппаратными всё ясно... Оцифровал и порядок... Только енто больно напряжно... :(
Microsoft DirectX - Маломягкий Прямой Х...
Не откладывай на завтра то, что можно выпить сегодня...

cashman
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 152
Зарегистрирован: 03.06.2004 (Чт) 0:57
Откуда: Россия, г.Екатеринбург

Сообщение cashman » 04.02.2005 (Пт) 0:10

По теории больших чисел, если подкинуть 1 млн. раз монетку - то соотношение орел/решка будет примерно одинакого.
Сам проверял :D

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.02.2005 (Пт) 19:33

cashman писал(а):По теории больших чисел, если подкинуть 1 млн. раз монетку - то соотношение орел/решка будет примерно одинакого.
Сам проверял :D
Кидал миллион раз монетку? Респект :-)
Я когда-то давно от скуки проверял эту теорию - меня хватило всего на 200 или 250 подкидываний...
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.02.2005 (Сб) 0:33

Дык ты-то Тёмыч, а он-то cashman :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 181

    TopList