AutoCAD顧問
還沒有註冊嗎...即日起免費註冊,所有最完整的AutoCAD討論、教學及資源都在論壇裡喔~
AutoCAD顧問
Would you like to react to this message? Create an account in a few clicks or log in to continue.
[討論]AUTOLISP 產生亂數的問題? 2020-211 [討論]AUTOLISP 產生亂數的問題? Oooo-110 [討論]AUTOLISP 產生亂數的問題? Oo-2-110 [討論]AUTOLISP 產生亂數的問題? Ziao1510 [討論]AUTOLISP 產生亂數的問題? BPl3tjj [討論]AUTOLISP 產生亂數的問題? Uos15010

[討論]AUTOLISP 產生亂數的問題?

向下

[討論]AUTOLISP 產生亂數的問題? Empty [討論]AUTOLISP 產生亂數的問題?

發表 由 andychen 于 2010-07-25, 10:27

AUTOLISP 好像沒有提供產生亂數的副程式?

嘗試著,自己寫一個。
把開發過程都 PO出來跟 大家分享

代碼:

; rnd-01.LSP

; time

(setq a 2
      b 3
      c (* a b))

(princ (strcat "\n c= " (itoa c) "\n"))
(princ)
; end of file






設計 產生亂數的副程式,需要時間的資料,
需要利用時間的資料,當作亂數的 種子數。


代碼:

; rnd-01.LSP

; time

(SETQ A1 (GETVAR "CDATE"))
(PRINC (STRCAT "\n a1= " (rtos a1 2 8 ) "\n"))

(setq no 40e4); 以下,讓 AUTOLISP 執行 40萬個 加法運算
; 大概需要的時間是 1.0秒

(setq sum 0 i 1)
(while (<= i no)
  (setq sum (+ sum i))
  (setq i (1+ i))
  )
(princ (strcat "\n sum= " (itoa sum) "\n"))

(SETQ A2 (GETVAR "CDATE"))
(PRINC (STRCAT "\n a2= " (rtos a2 2 8 ) "\n"))

(setq da (* (- a2 a1) 1e6))
(PRINC (STRCAT "\n 需要時間= " (rtos da 2 6 ) "\n"))

(princ)
; end of file





以下,完成 時間資料的取得。
精密度,只能到 千分秒。


代碼:

; rnd-01.LSP

; time
(defun time1( / a)
  (setq a (getvar "cdate")); 取得 目前的 時間資料
 
  (setq a (- a (fix a))); 取得 小數點後面的部份資料
 
  (setq a (* a 1e9)); HHMMSSXXX, XXX 為千分秒的 部分資料
 
  (fix a); 傳回整數的值
  ); end of time1()
; - - -

(setq a1 (time1 ))
(PRINC (STRCAT "\n a1= " (itoa a1) "\n"))

(princ)
; end of file





judyyai 在 2010-07-25, 16:35 作了第 1 次修改 (原因 : 3篇合併為一,主題改為討論)
avatar
andychen
該用戶停權中
該用戶停權中

文章總數 : 187
年齡 : 36
經驗值 : 4441
威望值 : 71
注冊日期 : 2010-04-09
男 水瓶座 豬

回頂端 向下

回頂端


 
這個論壇的權限:
無法 在這個版面回復文章
[討論]AUTOLISP 產生亂數的問題? Uos15010 [討論]AUTOLISP 產生亂數的問題? BPl3tjj [討論]AUTOLISP 產生亂數的問題? Ziao1510 [討論]AUTOLISP 產生亂數的問題? Oo-2-110 [討論]AUTOLISP 產生亂數的問題? Oooo-110 [討論]AUTOLISP 產生亂數的問題? 2020-211