首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >picaxe 28x1随机数发生器

picaxe 28x1随机数发生器
EN

Stack Overflow用户
提问于 2017-02-10 03:46:08
回答 1查看 210关注 0票数 1

我有一些简单的代码使用随机数函数从picaxes网站(稍微调整)

代码语言:javascript
复制
symbol counter = b7
symbol randword = b5
for counter = 0 to 10

let randword = timer
random randword

write counter, b5
next counter

end

由于某些原因,在picaxe编辑器版本5上这是完美的,但在picaxe编辑器6上,它所做的只是给出2,而不是非常随机的,我不知道为什么。

任何帮助都非常感谢

谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-02-15 06:39:34

检查PICAXE BASIC language manual可以发现代码中可能存在的几个问题:

  • 必须先用settimer命令初始化timer系统变量,然后才能使用它
  • 根据settimer使用的预加载值,timer的值在一次循环迭代和下一次循环迭代之间的短时间内很可能没有更改,这将使您从random
  • random中获得相同的结果应与字变量(w0、w1等)一起使用而不是字节变量

我认为random的手册条目建议您应该这样做,尽管我同意这并不完全清楚您是否刚接触随机数生成,就是在您第一次调用random时使用timer在中播种,然后在每次调用之后都使用它自己的前前值进行播种:

代码语言:javascript
复制
symbol counter = b5

let w3 = timer         ; w3 is the word variable consisting of b6 and b7
for counter = 0 to 10

random w3
;  ...do something with the value of w3 (but don't change w3 itself)...

next counter

然而说了这么多之后,在Programming的一个或另一个版本中的模拟器肯定不能在所有情况下都正确地模拟timer的行为。如果你不能让代码在真正的PICAXE上工作,把这个问题带到PICAXE forum,在那里革命教育支持人员以及其他有知识的用户都会看到它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42145534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档