"Обнуление" функции Rnd

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
a.v.a.x.
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 16.01.2007 (Вт) 9:46

"Обнуление" функции Rnd

Сообщение a.v.a.x. » 16.01.2007 (Вт) 10:16

Столкнулся с проблемой. При инициализации Vba.Randomize в функции модуля при работе в самих процедурах программы генерируется также произвольная, а не псевдопроизвольная последовательность. Вопросы такие:

1. Vba.Randomize рассчитана на всю программу при инициализации ее один раз или только в пределах конкретной функции (процедуры)?

2. Можно ли сбросить Vba.Randomize за пределами модуля в процедурах?

Заранее спасибо.

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

Сообщение tyomitch » 16.01.2007 (Вт) 10:20

Vba.Randomize рассчитана на всю программу.
Что конкретно нужно автору, я не понял.
Изображение

a.v.a.x.
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 16.01.2007 (Вт) 9:46

Сообщение a.v.a.x. » 16.01.2007 (Вт) 11:06

tyomitch писал(а):Vba.Randomize рассчитана на всю программу.
Что конкретно нужно автору, я не понял.


Мне нужно следующее: в одной части программы используется псевдопроизвольный генератор числел, в функциях в модуле программы используется произвольный генератор чисел. После введения в модуле произвольного генератора чисел, как вы и сказали, числа генерируются произвольно во всей программе. Как сделать псевдопроизвольную и произвольную генерацию автономными друг от друга? Какой код дает относительно "произвольную" генерацию чисел без использования Vba.Randomize? У меня после Vba.Randomize "слетает" псевдопроизвольная генерация.
Последний раз редактировалось a.v.a.x. 16.01.2007 (Вт) 11:16, всего редактировалось 1 раз.

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

Сообщение Amed » 16.01.2007 (Вт) 11:13

1) Что понимается под произвольной и псевдопроизвольной генерацией в данном случае?
2) Покажите код, как реализовано использование псевдопроизвольного и произвольного генератор чисел

a.v.a.x.
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 16.01.2007 (Вт) 9:46

Сообщение a.v.a.x. » 16.01.2007 (Вт) 11:19

Amed писал(а):1) Что понимается под произвольной и псевдопроизвольной генерацией в данном случае?
2) Покажите код, как реализовано использование псевдопроизвольного и произвольного генератор чисел


1. Под псевдопроизвольной генерацией понимается такая генерация чисел, которая при повторном запуске программы не была бы отлична он генерации, созданной при предыдущем запуске. Достигается путем использования Vba.Randomize.

2.1 Исполнение псевдопроизвольного генератора

Dim K As Integer

K = Int(Rnd * 100)

2.2. Исполнение произвольного генератора

Dim K As Integer

Vba.Randomize

K = Int(Rnd * 100)

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

Сообщение tyomitch » 16.01.2007 (Вт) 11:34

Генератор случайных чисел в VB один и глобальный.
Чтобы иметь несколько независимых генераторов, нужно реализовывать их самому.
Изображение

a.v.a.x.
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 16.01.2007 (Вт) 9:46

Сообщение a.v.a.x. » 16.01.2007 (Вт) 11:45

tyomitch писал(а):Генератор случайных чисел в VB один и глобальный.
Чтобы иметь несколько независимых генераторов, нужно реализовывать их самому.


Спасибо.


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

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

Сейчас этот форум просматривают: Google-бот, YaCy [Bot] и гости: 2

    TopList