明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: heart1982

怎么产生随机数

  [复制链接]
发表于 2007-1-3 22:35:00 | 显示全部楼层
用DOSLIB好了。不然用VB编个产生随机数的函数放到DLL文件中。用LISP调用。用时间不是个好方法。
发表于 2007-1-3 23:51:00 | 显示全部楼层
  1. ;xdcad上 aeo写的程序:
  2. (defun rnd(rMin rMax)
  3.     (vla-eval (vlax-get-acad-object)
  4.                "ThisDrawing.setVariable "USERR5" ,CDbl((Rnd))"
  5.     )
  6.     (+ rMin(* (getvar "userr5")(- rMax rMin)))
  7. )
发表于 2007-1-4 12:53:00 | 显示全部楼层

命令: (rnd 1 0)
0.294452

命令: (rnd 1 0)
0.294452

命令: (rnd 1 0)
0.294452

这个家伙只会产生相同的。那还叫随机吗。

发表于 2007-1-4 19:37:00 | 显示全部楼层
tcsl9621发表于2007-1-3 22:35:00用DOSLIB好了。不然用VB编个产生随机数的函数放到DLL文件中。用LISP调用。用时间不是个好方法。

问一下 用LISP如何调用DLL文件 谢谢

发表于 2007-1-5 22:06:00 | 显示全部楼层
本帖最后由 作者 于 2007-1-5 22:06:44 编辑

请看我的帖子。

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=57202

发表于 2007-2-9 13:55:00 | 显示全部楼层
(defun rnd ( )
(atoi (substr (rtos (getvar "cdate") 2 8) 16 1))
)
发表于 2011-11-30 16:26:01 | 显示全部楼层
这是用时间来计算随机数的,如果时间太短的话,随机数是一样的,你用这个代码测试就会有至少2个了
  1. (defun c:test()
  2. (repeat 100
  3. (princ "\n")
  4. (princ (rnd 1 10))
  5. )
  6. )
发表于 2012-4-4 19:31:58 | 显示全部楼层
这行应该是 : "ThisDrawing.setVariable \"USERR5\" ,CDbl(Rnd())"  注意 是Rnd() 而不是(Rnd) 。
发表于 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 22:26:43 | 显示全部楼层
本帖最后由 baitang36 于 2020-11-19 22:31 编辑

这太麻烦了,直接调用函数random&生成随机数就行了,美中不足是fas可以用,lisp不能用

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-5-17 19:24 , Processed in 0.155945 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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