gpt4 book ai didi

random - 是否可以在 TI-Basic 中制作真正的随机数生成器?

转载 作者:行者123 更新时间:2023-12-02 16:52:13 24 4
gpt4 key购买 nike

在 TI-84 计算器上有什么方法可以创建“真正的”随机数生成器吗?我知道计算器中内置的是一个伪随机数生成器,但是否有可能创建一个真正的 RNG,以便无论用户想要什么来为内置 RNG 播种,结果始终是随机的且不可预测的即使他们在获得一组数字后用相同的种子重新播种?我最初的想法是像这样在 For 循环中使用 RNG 来随机化种子,但我突然想到通过为初始 RNG 播种它仍然是可预测的。这是我使用的代码:

For(I,1,int(rand*100),1)
int(rand*100)→rand
End

但正如我所说,这没有用。

最佳答案

如果出于安全目的(意味着 用户的安全)想了解这一点,请考虑 TI-BASIC 程序既可检查又可编辑。此外,当“ protected ”(从编辑菜单中隐藏程序)时,撤消操作与首先“保护”程序一样容易。

R 寄存器的低位通常被认为是“足够随机的”,当然它们并不是真正随机的,但在正常情况下它们很难预测,因为 CPU 执行的任何指令也会将 R 递增一定量,并且在在宏观尺度上,很难预测 CPU 究竟会执行什么。从本质上讲,它就像一个时钟,但它变化得更快,也更难预测。

您可以像这样从 BASIC 中以可用的形式获取 R 的内容(您可以AsmComp(它以节省空间)

:AsmPrgmED5FE63FEF8C47EFBF4AC9

对应于这个片段:

ld a, r
and $3F
bcall(_SETXXOP1)
bcall(_StoAns)
ret

如您所见,结果将在 Ans 中。

只要用户不加修改运行程序,他们就不太可能猜到结果(大约 1/64 的机会),更不可能以定向方式影响它.

关于random - 是否可以在 TI-Basic 中制作真正的随机数生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58089356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com