明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 9846|回复: 33

怎么产生随机数

  [复制链接]
发表于 2004-10-21 21:59:00 | 显示全部楼层 |阅读模式
请教:lsp语言怎么产生随机数
发表于 2020-11-18 08:36:32 | 显示全部楼层
  1. (repeat 100
  2.   (princ "\n ")
  3.   (princ (rtos (/ (rem (getvar "CPUTICKS") 2027) 2029.0) 2 6))
  4. )
回复 支持 1 反对 0

使用道具 举报

发表于 2020-11-19 23:03:59 | 显示全部楼层
baitang36 发表于 2020-11-19 22:26
这太麻烦了,直接调用函数random&生成随机数就行了,美中不足是fas可以用,lisp不能用

Lisp有random这个函数?
发表于 2004-10-21 23:51:00 | 显示全部楼层
用时间
发表于 2004-10-22 07:55:00 | 显示全部楼层
随机数连续產生"用时间"是不行的
发表于 2004-10-22 10:09:00 | 显示全部楼层
如果要连续产生的情况,就用vl调用vb的 rnd 函数吧。
发表于 2004-10-23 08:51:00 | 显示全部楼层
用时间的话,怎么取得当前的时间值呢?
发表于 2004-10-23 09:05:00 | 显示全部楼层
;;随机数
(defun c:test()
(setq tmp (rtos (getvar "cdate") 2 8))
(setq d (rtos (atof (substr tmp 16 2)) 2 0))
d
)

点评

这是最好的办法,这么用,对国产CAD不出错的  发表于 2020-11-13 22:16
发表于 2004-10-23 10:41:00 | 显示全部楼层
怎么没有看3楼及4楼的??? TO changch:当前时间就是6楼中的(getvar "cdate"),具体意义参考帮助文件中系统变量:cdate
发表于 2004-10-24 13:57:00 | 显示全部楼层
谢 谢 了
发表于 2004-10-24 17:59:00 | 显示全部楼层
;RND.LSP
;随机数产生器 (defun rnd (n1 n2)
(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)) ;若 n1 > n2 则互换
(setq rn (atoi (substr (rtos (getvar "cdate") 2 7) 14))) ;取种子数
(repeat nn
(setq rn (+ (* rn ra) rb)) ;取随机数
(if (minusp rn) (setq rn (- rn imin))) ;如果是负值则减去最小负数得到正数
)
(setq rn (rem rn imax)) ;取余数
(setq rn (/ rn imax 1.0)) ;转成小数
(setq rn (+ (fix (* rn (1+ (- n2 n1)))) n1)) ;产生指定范围内的随机数
)
发表于 2004-10-24 18:27:00 | 显示全部楼层
我用如下程序测试: (defun c:test()
(repeat 10
(princ "\n")
(princ (rnd 1 10))
)
) 结果如下,试了几次,发现还是不行的,连续产生的随机数都是一样的,,, Command:
Command: test 8
8
8
8
8
8
8
8
8
88 Command:
Command: test 4
4
4
4
4
4
4
4
4
44 Command:
Command: 'VLIDE
Command:
Command: test 1
1
1
1
1
1
1
1
1
11 Command:
Command: test 8
8
8
8
8
8
8
8
8
88 Command:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-4-24 12:38 , Processed in 0.215750 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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