找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3153|回复: 18

[求助] [求助]:随机数能否这样做?

[复制链接]
发表于 2005-11-28 17:22:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
其他软件平台的开发程序有这样的随机数,比如:[random 1 100]
就可以产生1~100间的随机数,LISP可不可以也实现这样的纯数字的随机数,而且可以在自己制定的范围内随机?想了很久都没有搞定,请大家帮忙想想!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-12-30 09:46:37 | 显示全部楼层
生成随机数有什么用处啊?可以用当前时间的毫秒位取正弦值得到种子来计算随机数
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 1 反对 0

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-11-28 18:21:50 | 显示全部楼层
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2005-11-28 19:04:32 | 显示全部楼层
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-28 19:22:45 | 显示全部楼层
[php]
(defun hy_randnum (n1 n2 / IMAX IMIN N3 NN RA RB SEED );;random
(setq seed (* (getvar "DATE") 1e6))
(setq seed  (atoi (substr (rtos (- seed (fix seed)) 2 6) 6)))
(setq ra 66791 rb 17 nn 30)
(setq imin (expt 2 31) imax (1- imin))
(if (> n1 n2) (setq n3 n1 n1 n2 n2 n3))
(repeat nn
   (setq seed (+ (* seed ra) rb))
   (if (minusp seed) (setq seed (- seed imin)))
   )
(setq seed (rem seed imax)
       seed (/ seed imax 1.0)
       seed (+ (fix (* seed (1+ (- n2 n1)))) n1)
       )
)
[/php]
产生N1 N2 之间的随机整数...
(hy_randnum 1 100)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2005-11-28 19:50:16 | 显示全部楼层
最初由 舟自横 发布
[B][php]
(defun hy_randnum (n1 n2 / IMAX IMIN N3 NN RA RB SEED );;random
(setq seed (* (getvar "DATE") 1e6))
(setq seed  (atoi (substr (rtos (- seed (fix seed)) 2 6) 6)))
(setq ra 66791 rb 17 nn 3... [/B]


能否改成這種形式:
(HY_RANDNUM  最小隨機數 最大隨機數 隨機數個數),産生一組隨機數?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-28 23:25:16 | 显示全部楼层
  1. [FONT=courier new](load"xyp_LIB.VLX")
  2. (defun SJSZ1 (minnum maxnum talnum / lst)
  3.   (repeat talnum
  4.     (setq a0 (max (abs maxnum)(abs minnum))
  5.       a1 (sjs a0))
  6.     (if        (= (rem a1 2) 0)
  7.       (setq b 1)
  8.       (setq b -1)
  9.     )
  10.     (setq c (* (sjs a0) b))
  11.     (while (or(< c minnum)(> c maxnum))
  12.       (setq c (* (sjs maxnum) b))
  13.     )
  14.     (setq lst (cons c lst))
  15.   )
  16.   lst
  17. )
  18. ;;;测试
  19. ;;;(SJSZ1 -1000 500 10)→(375 304 181 -264 -408 -206 -686 -346 273 -905)[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-29 08:20:28 | 显示全部楼层
最初由 taner 发布
[B][QUOTE]最初由 舟自横 发布
[B][php]
(defun hy_randnum (n1 n2 / IMAX IMIN N3 NN RA RB SEED );;random
(setq seed (* (getvar "DATE") 1e6))
(setq seed  (atoi (substr (rtos (- seed (fix seed)) ... [/B]

可以的只要稍改就可以了
(defun  test(n1 n2 numb / qlist)
(setq qlist nil)
(repeat numb
   (setq qlist (cons (hy_randnum n1 n2) qlist))
  (command "delay" 20)
)
qlist
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2005-11-29 10:15:31 | 显示全部楼层
最初由 xyp1964 发布
[B][CODE](load"xyp_LIB.VLX")
(defun SJSZ1 (minnum maxnum talnum / lst)
  (repeat talnum
    (setq a0 (max (abs maxnum)(abs minnum))
      a1 (sjs a0))
    (if        (= (rem a1 2) 0)
   ... [/B]


測試:
命令: (SJSZ1 -1000 500 10)
(186 206 310 226 182 454 482 470 382 78)

命令: (SJSZ1 -1000 500 10)
(22 370 2 138 98 382 134 58 6 162)

命令: (SJSZ1 -1000 500 10)
(454 394 150 166 202 174 10 62 466 286)

命令: (SJSZ1 -1000 500 10)
(146 110 366 322 482 62 362 226 134 322)

命令: (SJSZ1 -1000 500 10)
(222 486 178 66 190 314 346 490 42 186)

命令: (SJSZ1 -1000 -10 10)
错误 : 函数被取消
命令: *取消*

命令: (SJSZ1 -1000 0  10)
错误 : 除数为零
命令: (SJSZ1 -1000 -10 10)--------好象死機了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-29 13:02:11 | 显示全部楼层
我来也
[php]
;;求随机数(0~1)--by 狂刀
(defun !rnd ()
  (*(rem (getvar "cputicks") 1e3)1e-3)
)
;;求n个a~b随机数列表----by 狂刀
(defun !rndx (a b n / c lst)
  (setq c (- b a))
  (repeat n
    (setq lst (cons (+ a (* (!rnd) c)) lst))
  )
)
(!rndx -100 100 10)
-> (-32.8 -20.0 -65.6 21.6 -93.6 3.2 63.2 80.0 78.4 -12.8 -95.6 -71.6 -8.8 -98.4 -84.16 -97.84 -82.36 -67.96)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2005-11-29 13:19:34 | 显示全部楼层
最初由 狂刀 发布
[B]我来也
[php]
;;求随机数(0~1)--by 狂刀
(defun !rnd ()
  (*(rem (getvar "cputicks") 1e3)1e-3)
)
;;求n个a~b随机数列表----by 狂刀
(defun !rndx (a b n / lst)
  (setq c (- b a))
  (repe... [/B]


請解釋一下,cputicks是什麽變量?查2006 help裏面沒有.謝謝!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-29 13:27:53 | 显示全部楼层
最初由 taner 发布

  1. [FONT=courier new](defun SJSZ1 (minnum maxnum talnum / lst)
  2.   (repeat talnum
  3.     (setq a0 (max (abs maxnum) (abs minnum))
  4.           a1 (sjs a0)
  5.     )
  6.     (if        (= (rem a1 2) 0)
  7.       (setq b 1)
  8.       (setq b -1)
  9.     )
  10.     (setq c (* (sjs a0) b))
  11.     (while (or (< c minnum) (> c maxnum))
  12.       (setq a0 (max (abs maxnum) (abs minnum))
  13.             a1 (sjs a0)
  14.       )
  15.       (if (= (rem a1 2) 0)
  16.         (setq b 1)
  17.         (setq b -1)
  18.       )
  19.       (setq c (* (sjs a0) b))
  20.     )
  21.     (setq lst (cons c lst))
  22.   )
  23.   lst
  24. )[/FONT]

测试:
[php]
(SJSZ1 -1000 500 10);(155 -242 -656 -211 -620 -106 -164 245 -387 -789)
(SJSZ1 -1000 0 10);(-326 -672 -591 -267 -354 -249 -380 -724 -31 -638)
(SJSZ1 -1000 -10 10);(-440 -223 -983 -511 -657 -602 -109 -442 -780 -109)
(sjsz1 -1000 -900 10);(-984 -950 -920 -901 -960 -904 -965 -961 -992 -990)[/php]

信箱满需清理!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2005-11-29 13:47:17 | 显示全部楼层
最初由 狂刀 发布
[B]我来也

;;求随机数(0~1)--by 狂刀
(defun !rnd ()
  (*(rem (getvar "cputicks") 1e3)1e-3)
)
;;求n个a~b随机数列表----by 狂刀
(defun !rndx (a b n / c lst)
  (setq c (- b a))
  (re... [/B]

測試:(!rndx -1000 0 100) (-958.0 -666.0 -294.0 -914.0 -686.0 -122.0 -466.0
-554.0 -570.0 -658.0 -850.0 -370.0 -434.0 -566.0 -318.0 -946.0 -226.0 -62.0
-362.0 -462.0 -2.0 -222.0 -674.0 -490.0 -722.0 -282.0 -238.0 -882.0 -406.0
-358.0 -922.0 -430.0 -378.0 -114.0 -78.0 -114.0 -990.0 -318.0 -946.0 -262.0
-554.0 -202.0 -934.0 -98.0 -918.0 -594.0 -358.0 -190.0 -278.0 -494.0 -250.0
-46.0 -978.0 -82.0 -38.0 -274.0 -882.0 -930.0 -222.0 -38.0 -746.0 -906.0 -278.0
-718.0 -798.0 -58.0 -626.0 -158.0 -70.0 -666.0 -166.0 -910.0 -830.0 -698.0
-622.0 -986.0 -106.0 -138.0 -98.0 -406.0 -122.0 -874.0 -874.0 -638.0 -878.0
-314.0 -802.0 -562.0 -566.0 -34.0 -762.0 -638.0 -190.0 -482.0 -122.0 -802.0
-986.0 -962.0 -558.0 -426.0 -862.0 -470.0 -206.0 -914.0 -898.0 -342.0 -346.0
-630.0 -50.0 -222.0 -266.0 -378.0 -338.0 -614.0 -942.0 -46.0 -482.0 -458.0
-162.0 -134.0 -358.0 -630.0 -814.0 -322.0 -178.0 -950.0 -962.0 -222.0 -810.0
-346.0 -962.0 -182.0 -174.0 -622.0 -206.0 -74.0 -274.0 -838.0 -122.0 -230.0
-714.0 -738.0 -122.0 -906.0 -990.0 -802.0 -162.0 -922.0 -446.0 -294.0 -546.0
-298.0 -342.0 -890.0 -614.0 -590.0 -674.0 -138.0 -810.0 -278.0 -782.0 -910.0
-554.0 -854.0 -730.0 -914.0 -742.0 -186.0 -314.0 -414.0 -618.0 -338.0 -170.0
-206.0 -442.0 -6.0 -886.0 -198.0 -770.0 -550.0 -962.0 -754.0 -734.0 -150.0
-14.0 -994.0 -750.0 -574.0 -914.0 -830.0 -254.0 -854.0 -702.0 -330.0 -850.0
-382.0 -274.0 -330.0 -218.0 -714.0 "0" "COM" "SEG" "X" "DEFPOINTS" "k" "c" "pi"
"cp" "S1" "K1" "CP1" "PI1" "B" "DIM" "交义点" "SY1" "SY2" "SEG1" "C1" "C2" "C3"
"C4" "C5" "C6" "C7" "C8" "C9" "C10" "C11" "C12" "C13" "C14" "C15" "C16")
爲何出現代表層名的字符?

搞清楚原因了,沒將LST和C設爲局部變量時會出現上面的情形.

如此改一下,生成隨機整數
[php]
(defun !rndx (a b n / lst c)
  (setq c (- b a))
  (repeat n
    (setq lst (cons (fix(+ a (* (!rnd) c))) lst))
  )
)[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-29 15:07:59 | 显示全部楼层
  1. [FONT=courier new](load "xyp_lib.vlx")                        ;版本 V.20051129 (1729)
  2. (xyp-get-Randoms -1000 0 100)
  3. ;;;结果
  4. '(-719         -240        -833   -36    -354   -204   -116   -98          -591         -626
  5.   -343         -193        -99    -660   -688   -498   -848   -406          -155         -769
  6.   -283         -387        -506   -348   -747   -685   -4           -199          -389         -5
  7.   -370         -88        -686   -112   -509   -212   -534   -12          -293         -349
  8.   -39         -509        -213   -917   -598   -51    -775   -617          -929         -535
  9.   -691         -810        -837   -655   -333   -578   -151   -973          -691         -368
  10.   -47         -689        -79    -483   -306   -617   -833   -120          -119         -795
  11.   -400         -893        -742   -303   -495   -301   -764   -140          -967         -742
  12.   -139         -487        -712   -43    -80    -456   -942   -374          0         -64
  13.   -678         -281        -103   -434   -241   -641   -818   -54          -67         -459
  14. )[/FONT]
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2005-11-29 16:08:39 | 显示全部楼层
最初由 xyp1964 发布
[B][CODE](load "xyp_lib.vlx")                        ;版本 V.20051129 (1729)
(xyp-get-Randoms -1000 0 100)
;;;结果
'(-719         -240        -833   -36    -354   -204   -116   -98          -591         -626
  -343         -193        -99    -6... [/B]


測試:
命令: (xyp-get-Randoms 100 200 10)
(198 178 110 122 142 126 178 198 182 174)

命令: ((xyp-get-Randoms -100 10 10)
(_> )
错误 : 函数错误: (10 6 10 2 10 10 10 2 6 2)
命令: (xyp-get-Randoms -100 10 10)
(2 2 6 6 6 2 2 6 2 10)

命令: (xyp-get-Randoms -1000 0 10)
错误 : 函数被取消
命令: *取消*

命令: (xyp-get-Randoms -100 -10 2)
错误 : 函数被取消
命令: *取消*

命令: (xyp-get-Randoms 100 200 10)
(182 198 174 122 114 186 134 162 146 182)

命令: (xyp-get-Randoms -100 0 10)
错误 : 函数被取消
命令: *取消*

命令: (xyp-get-Randoms -100 -10 5)
错误 : 函数被取消
命令: *取消*


命令: (xyp-get-Randoms 100 200 10)
(146 102 198 198 194 138 106 130 142 154)
命令: (xyp-get-Randoms -100 10 10)
(2 2 6 6 6 2 2 6 2 10)

都是正數時沒問題.當第二項爲0和負數時,象死機了.不得不按ESC中斷.另外,産生的隨機數分散性不好.如(xyp-get-Randoms -100 10 10)
(2 2 6 6 6 2 2 6 2 10),産生的都是正數.

信箱满需清理!!!by xyp1964[/COLOR]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-29 16:47:41 | 显示全部楼层
最初由 taner 发布

[php]命令: (xyp-get-Randoms 100 200 10)
(145 102 187 195 109 120 140 185 109 113)

命令: (xyp-get-Randoms -100 10 10)
(-66 -82 -38 -6 -69 -3 -71 -47 -24 -24)


命令: (xyp-get-Randoms -1000 0 10)
(-6 -877 -721 -1 -541 -95 -268 -123 -746 -364)

命令: (xyp-get-Randoms -100 -10 2)
(-74 -30)

命令: (xyp-get-Randoms 100 200 10)
(199 168 175 116 197 191 117 155 185 109)

命令: (xyp-get-Randoms -100 0 10)
(-4 -5 -79 -58 -14 -11 -67 -42 -61 -90)

命令: (xyp-get-Randoms -100 -10 5)
(-94 -78 -59 -47 -77)

命令: (xyp-get-Randoms 100 200 10)
(129 176 170 122 179 177 154 115 151 181)

命令: (xyp-get-Randoms -100 10 10)
(-73 -43 -92 0 -55 8 -66 -36 -14 -24)[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-16 12:48 , Processed in 0.254292 second(s), 62 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表