[討論]AUTOLISP 產生亂數的問題?
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
[討論]AUTOLISP 產生亂數的問題?
AUTOLISP 好像沒有提供產生亂數的副程式?
嘗試著,自己寫一個。
把開發過程都 PO出來跟 大家分享
設計 產生亂數的副程式,需要時間的資料,
需要利用時間的資料,當作亂數的 種子數。
以下,完成 時間資料的取得。
精密度,只能到 千分秒。
嘗試著,自己寫一個。
把開發過程都 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篇合併為一,主題改為討論)
andychen- 該用戶停權中
- 文章總數 : 186
年齡 : 40
經驗值 : 6035
威望值 : 71
注冊日期 : 2010-04-09
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章