明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 730|回复: 12

[提问] 随机不能“随便”!

[复制链接]
发表于 2018-6-30 08:23 | 显示全部楼层 |阅读模式
随机数问题:


如果产生的随机数不理想,其中一些不能要,怎么办?


能不能做个数组 【1,3,6,8,31,289,45,......】


用lisp从里面随机抽取采用?



"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2018-6-30 08:29 | 显示全部楼层
得到随机数,再用member判断一下。
例如得到随机数 7 , (member 7 '( 1  3 5 7 9 ...)) ,如果有返回值的话就再重新得到随机数.

点评

就是,假如我不要7,如果返回是7,就再随机。。。。。。  发表于 2018-6-30 08:39
发表于 2018-6-30 09:30 | 显示全部楼层
直接从你的数组里随机获取不是更快么。。

点评

你说的对,我就是要这个代码啊。  发表于 2018-7-12 07:54
发表于 2018-6-30 09:53 来自手机 | 显示全部楼层
nth 随机序号 list

点评

思路好像明了,但是。。。。。。。。。。  发表于 2018-7-12 08:40
 楼主| 发表于 2018-7-12 07:54 | 显示全部楼层
顶起来,谁能写个代码,解决这个问题?
发表于 2018-7-12 08:55 | 显示全部楼层
(defun riqi_sj(/ riqi sj39 x sj) ;(riqi_sj) ;wz=日期+随机数
(setq riqi (menucmd "M=$(edtime,$(getvar,date),YYMODD.)"))  ;YYYY.MO.DD-hh:mm.ss
;3~9之间的随机数 819534890 2015-6-10 http://bbs.mjtd.com/forum.php?mo ... =%CB%E6%BB%FA%CA%FD
(setq sj39 (strcat (rtos (+ (fix (* (* (rem (getvar "cputicks") 1e3) 1e-3) 7)) 3))""))  ;"这里可以写后缀"
(setq x (rtos (getvar "cputicks") 2 0))
(setq sj (substr x (- (strlen x) 4)))
(setq wz (strcat riqi sj39 sj))
(setq riqi nil sj39 nil x nil sj nil)
(princ))

点评

是产生了随机数,里面有部分不能用,有部分能用,怎么样挑出来能用的。  发表于 2018-7-12 10:20
发表于 2018-7-13 09:50 | 显示全部楼层
riqi、sj39都可以单独使用

最笨的办法如下:
(defun c:13()
(setq x nil)
(while (not x)
(setq x (strcat (rtos (+ (fix (* (* (rem (getvar "cputicks") 1e3) 1e-3) 7)) 0))"")) ;0~9随机数
(if (or (= x "0")(= x "1")(= x "2")(= x "3")(= x "4")(= x "5")(= x "6")(= x "7")(= x "8")(= x "9") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
)
(progn (alert x)) (setq x nil) )
)
(princ))

你可以用 x 组合为任意数

点评

能达到目的,就这个问题。  发表于 2018-7-17 09:42
发表于 2018-7-13 12:12 来自手机 | 显示全部楼层
本帖最后由 yxp 于 2018-7-13 14:26 编辑

来自高大师的方法,需要系统注册dwx
;;创建dwx对象
(setq DWX (vlax-create-object "DynamicWrapperX"))

;;声明C语言内库的rand函数,C内裤由Windows自带
(vlax-invoke DWX 'Register "MSVCRT" "rand" "r=l")

;;调用C语言的 rand 函数,生成一个 0~2^15 的一个随机数
(vlax-invoke DWX 'rand)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-29 02:18 , Processed in 0.478706 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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