明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 610|回复: 5

[经验] 【原创】保留函数random&的参数

  [复制链接]
发表于 2024-5-16 15:55 | 显示全部楼层 |阅读模式
本帖最后由 baitang36 于 2024-5-16 15:58 编辑

跟踪发现,保留函数random&最少一个参数,最多两个参数,第二个参数是什么呢?继续跟踪,发现它要求的类型是vector,有三个元素的vector
问题是,怎么试验也无法做出一个符合要求的vector
发现random&的出错信息是  错误: 参数类型错误: random-state-p: 1
看来它需要的是一个特殊的vector,这vector的类型是random-state-p
搜了一下和random-state有关的保留函数,发现一个make-random-state,它可以没有参数,也可以有一个参数。没有参数时返回一个固定vector,好像没意义。经过试验发现这个参数是T
总结一下,random&的用法是:(random& 整数 (make-random-state T))
random&  make-random-state都是保留函数,用之前要用trf_9.fas的tranf转换一下。(load "trf_9.fas")(tranf "make-random-state")
试验一下:
命令: (random& 300 (make-random-state T))
261
命令: (random& 300 (make-random-state T))
18
命令: (random& 300 (make-random-state T))
231



本帖子中包含更多资源

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

x

评分

参与人数 5明经币 +6 金钱 +48 收起 理由
highflybird + 1 + 18 赞一个!
e2002 + 2 + 30 赞一个!
guosheyang + 1 赞一个!
自贡黄明儒 + 1 很给力!
llsheng_73 + 1 很给力!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2024-5-16 16:23 | 显示全部楼层
(make-random-state T)每次生成的vector都是不同的,这样生成的随机数比一个参数更随机一些
发表于 2024-5-16 20:14 | 显示全部楼层
感谢长老的分享!
发表于 2024-5-17 09:42 | 显示全部楼层
本帖最后由 crtrccrt 于 2024-5-17 09:44 编辑

采用 (make-random-state T)参数后,试试连续调用返回值,我这里返回值均相同,不用该参数时返回随机值
(repeat 100  (princ "\n")(princ (random& 100)) )(princ)
(repeat 100  (princ "\n")(princ (random& 100 (make-random-state T))) )(princ)
(repeat 999  (princ "\n")(princ (random& 100 (make-random-state T))) )(princ)

本帖子中包含更多资源

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

x
 楼主| 发表于 2024-5-20 10:48 | 显示全部楼层
crtrccrt 发表于 2024-5-17 09:42
采用 (make-random-state T)参数后,试试连续调用返回值,我这里返回值均相同,不用该参数时返回随机值
(repe ...

看来(make-random-state T)这个函数是复位种子?等我有时间扒一下它。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-1 17:35 , Processed in 0.595286 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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