Тема: Генератор случайных чисел.

Если ли в AutoLISP функция - генератор случайных чисел? Если нет, то как ...?
Вариант системного времени не предлагать.

Re: Генератор случайных чисел.

[rus]1. Netu
2. Togda nikak
3. a zachem? [/rus]

Re: Генератор случайных чисел.

Посмотри здесь
http://autolisp.ru/dwlsp/22

Re: Генератор случайных чисел.

> *****
ехто и есть вариант системного времени

Re: Генератор случайных чисел.

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

Re: Генератор случайных чисел.

PS. Замену времени другими аналогами не предлагать! Интересен алгоритм программы, который всегда выдает разные значения...

Re: Генератор случайных чисел.

А VBA-шный генератор в лисп исполнении не пойдёт? Не в курсе какие именно параметры для генерации используются.

(defun RndNum(minNum maxNum)
(vla-eval
  (vlax-get-acad-object)
"ThisDrawing.setVariable \"USERR5\" ,CDbl((Rnd))") ; end vla-eval
(+ minNum
   (* (getvar "USERR5")
      (- maxNum minNum)))
); end RndNum

Или интересует именно алгоритм?

Re: Генератор случайных чисел.

> {Smirnoff}
Скорее всего, виндовая генерация...
Можно ей воспользоваться с виндовой ком строки:

echo %random%

Но повторюсь, этот алгоритм, тоже использует время...
Без времени, еще не придумано алгоритмов :(

Re: Генератор случайных чисел.

> Евгений Елпанов
Я думаю что генераторов случайных чисел не существукт как таковых во всяком случае на основе двоичной логики. Есть генераторы более или мение приближенные к этому идиалу.
А вот если взять к примеру время между действиями пользователя (щелчками мышью) в микросекундах и использовать к примеру 3 последних разряда :) Только действовать это будет медленно, а так чем не генератор случайных чисел? Если в секундах и миллисекундах при переодических действиях может наблюдаться определённая переодичность, то в разряде микросекунд не думаю. Т. к. сказать использовать квантовый компьютер который как говорят у нас в голове живёт.

Re: Генератор случайных чисел.

> Евгений Елпанов
[rus] V AutoLispe voobshhe netu funkcii generatora
sluchajnyh chisel (gsch). Nado pisat' samomu, a pisat' ne ispol'zuja sistemnoe vremja, ja ne umeju (da i voobshhe ne proboval, a proboval by, tak tol'ko s ispol'zovaniem sistemnogo vremeni). Dumaju i v drugih jazykah programmirovanija, gde est' vstroennaja funkcija gsch, tam ona tozhe ispol'zuet sistemnoe vremja.
[/rus]

Re: Генератор случайных чисел.

> Vitalij
Покрути такой вариант без системного времени:
(не совсем уверен, что будет работать нормально)

; by Paul Kohut
(setq SeedRand 1)
(defun rand (/)
  (setq SeedRand (+ (* (fix SeedRand) 214013) 2531011))
  (boole 1 (/ SeedRand 65536) 32767)
)
; edited by Fatty
(defun randomgen (num / rlst SeedRand init ncount val)
(setq init (cadadr
(grread (car (grread)))))
  (setq SeedRand (abs (fix (* 128256 (- init (fix init))))))
  (setq nCount 0)
  (while (< nCount num)
        (setq val (rem (rand) num))
    (if (not (member val rlst))
      (progn
 (setq rlst (cons val rlst))
 (setq nCount (+ nCount 1))
      )
    )
  )
  rlst
  )
;CaLL :
(defun c:test()
(prompt "\n\t >> Press any key >>")
(setq data (randomgen 256))
  (prin1 data)
  )

~'J'~

Re: Генератор случайных чисел.

> Fatty
А мне ехто не нужно, тему открыл, я думаю, пушхай он пробует . :)

> Valery