Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];

Вниз

КАК СДЕЛАТЬ, ЧТО БЫ ПРИ ЗАПУСКЕ МОЯ ПРОГРАММА В Labele ОТОБРАЖАЛА ПРОИЗВОЛЬНОЕ ЧИСЛО?   Найти похожие ветки 

 
Dimbambon   (2001-11-24 22:51) [0]

Люди помогите, пожалуйста, надо срочно, что бы программа при запуске в Label1 показывала произвольное,
целое, десятизначное число, да так…………….. что бы оно при каждом запуске было РАЗНОЕ!!!
Может, есть такая функция, похожая на Random?
Или напишите алгоритм какой-нибудь, пожалуйста!!!
Только если надо будет, напишите плиз что надо в uses пихать!

Заранее благодарен!


 
absent   (2001-11-24 23:25) [1]

Даже с рандомом есть шанс в повторении числа, т.к. это все таки псевдослучайный генератор... Можно конечно каждый раз сохранять результат и сравнивать потом, но это некрасивое решение... Если программу будут запускать 1000000 раз, что за база получится!?...


 
Pat   (2001-11-25 12:18) [2]

procedure TForm1.FormCreate(Sender: TObject);

var i : integer;

begin

randomize;

label1.Caption := inttostr(random(9) + 1);

for i := 1 to 9 do

begin

label1.Caption := label1.Caption +

inttostr(random(10));

end;

end;


 
Anonymus   (2001-11-25 14:35) [3]

Удалено модератором


 
Anonymus   (2001-11-25 14:37) [4]

А самому random написать ???
Юзай GetTickCount, Date, Time и порты 289 и 80 (на асме).


 
33   (2001-11-25 17:21) [5]

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


 
Olgerd   (2001-11-25 17:36) [6]

>33 (25.11.01 17:21)
Это уже будет не случайное, а предсказуемое число, даже если перетасовать числа.


 
33   (2001-11-25 18:07) [7]

Тут вопрос о произвольных числах, а не о случайных.
Разница есть, кроме того, в определении случайного числа
заложенно то, что оно может повториться.


 
Anatoly Podgoretsky   (2001-11-25 20:23) [8]

Не выйдет число "десятизначное" то есть ограниченное, так что повторение предопределено


 
Admin   (2001-11-25 20:46) [9]

Удалено модератором


 
модератор   (2001-11-25 21:45) [10]

>Admin (25.11.01 20:46)
Твои "шедевры" в форуме больше не появятся, как и имя Admin будет удаляться везде.


 
12345678 ADMIN   (2001-11-25 23:27) [11]

123


 
33   (2001-11-26 01:06) [12]

To:Anatoly Podgoretsky ©

>повторение предопределено
Через сколько лет?
От того, как часто программа будет запускатся можно вводить
и отсчет периода смены цифр дата-время.
Кстати считать можно начинать с 2001 года .... числа.


 
33   (2001-11-26 01:54) [13]

Небольшие выкладки:
Пусть мы отслеживаем запуск каждую секунду:
В сутках
60*60*24=86400 сек итого 5 цифр.
возьмем еще 4 цифры на год
9999/365 ~ 27 лет

(скромно так полагаем, что программа
столько отработает)

И еще 1 цифра остается на указание погоды или еще чего случайного. (а можно и пустить на год, тогда нужно 270
лет ждать когда цифры повторятся)

И не факт, что они повторятся через столько лет,
если, конечно программу не запускать каждую секунду.

затем все тусуем секунды-годы-секунды-...
можно еще какие нибудь преобразования сделать

А если еще цифры 16 разрядные ...
или время отслеживать по минутам, а дату на 999 дней,
то остается 3 цифры на случайную комбинацию.

Возможны варианты ...


 
Polevi   (2001-11-26 08:25) [14]

CoCreateGUID


 
33   (2001-11-26 09:01) [15]

To:Polevi ©
>CoCreateGUID

К сожалению он выдает 16 байт - 128 бит.

Не лезет.


 
Anatoly Podgoretsky   (2001-11-26 11:10) [16]

33 (26.11.01 01:06)
Если речь идет об наращивание, то конечно долго, если про случайные (в вопросе про случайные), то ответ сложнее или в два раза быстрее если статистически, если ведем речь об повторении то время не имеет роли результат гарантирован.

33 (26.11.01 09:01)
Сократи до 64, любым путем, затем mod 10000000000.


 
33   (2001-11-27 01:07) [17]

To:Anatoly Podgoretsky ©
Не совсем понял первый кусок.

Да мне то это собственно и не надо, для себя я такие вопросы решаю.

Я просто хотел сказать, что если важна уникальность,
то проще сделать счет по какой нибудь формуле.
А так, все зависит от от того, что нужно получить.
(уникальность, быстроту, случайность)

Хотя 10 знаков явно маловато. Обычно используют как
минимум 20.


 
DK   (2001-11-27 03:56) [18]

Мне кажется достаточным будет
Randomize;
A := Random(сколько_нужно)

Если я не ошибаюсь, то Randomize переинициализирует генератор случайных чисел используя в качестве стартового значения дату (вплоть до сотых долей секунды)

Риторический вопрос по поводу термина "случайное число":

Насколько я правильно понимаю этот термин, то он означает, что число выбирается из заданного диапазона АБСОЛЮТНО случайным образом, НЕ основываясь на ранее выбранных числах (что никак не исключает повторения). Хотя это можна задать как дополнительное условие выбора.

Тогда подойдём к вопросу с другой стороны: Допустим нужно выбрать 1000 целых чисел из диапазона 1..1000 (частный вариант, когда количество чисел равно ширине диапазона). В данном случае после выбора каждого последующего числа, диапазон будет сужаться, и после выбора предпоследнего числа, у нас останется только ОДИН вариант для выбора последнего. Где случайность?



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.004 c
1-90276
Дмитрий _Ч
2002-01-09 16:05
2002.01.28
Мат. моделирование средствами Delphi 6


1-90256
SuperMama
2002-01-08 14:14
2002.01.28
Как в D5 организовать цифры ПРОПИСЬЮ ?


6-90332
Star
2001-11-06 09:14
2002.01.28
Как определить комп, наиболее активно загружающий сеть?


14-90360
ddd-numerical TV
2001-11-29 07:06
2002.01.28
ACTIVE LIST


1-90244
hacker
2002-01-04 10:11
2002.01.28
Про процедуру и обработку событий





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский