level 5
我推の狗子
楼主
之前有人问到RM没有开方功能,虽然我觉得这个功能没有也无所谓,但偶尔可能还是会用到的。再加上我也挺感兴趣,那就设计一个用纯事件开方的算法吧。虽然我知道这方法肯定有前人做过,不过是以自己的方法重现一下而已。
首先根据扔鸡蛋模型,要想知道哪一层扔的鸡蛋会碎,就要一层层去试。要想知道Y是哪个X的平方,就将X代入1,2,3,4....不停相乘直到找到那个数就可以了。这是理论基础。
这时候就会有小朋友问了,你这X代入的都是整数,怎么能准确找到呢!
RM是没有小数的啊哈哈哈。RM的变量输入上限是99999999,那么求根的话只需要试10000次就够了,就这样我们获得了一个算法雏形——

而且这么简单的数数算法电脑也能一瞬间算出来,人类的科技真是伟大。

但肯定有人觉得这方法不是蠢到爆炸,要是我做ACT时一直并行处理的话不卡得要死!
没错,接下来就是重点,既算法的优化。使用二分法的话,因为99999999小于2的二十七次方,即可保证最多只需要进行27次循环就能求得其整数根。
不过RM虽然输入只能8位,但其实输出变量理论可以到达255位,有需要你可以根据自己的变量上限进行调整,这里只用八位数作说明示范。
2020年05月18日 23点05分
1
首先根据扔鸡蛋模型,要想知道哪一层扔的鸡蛋会碎,就要一层层去试。要想知道Y是哪个X的平方,就将X代入1,2,3,4....不停相乘直到找到那个数就可以了。这是理论基础。
这时候就会有小朋友问了,你这X代入的都是整数,怎么能准确找到呢!
RM是没有小数的啊哈哈哈。RM的变量输入上限是99999999,那么求根的话只需要试10000次就够了,就这样我们获得了一个算法雏形——

而且这么简单的数数算法电脑也能一瞬间算出来,人类的科技真是伟大。
但肯定有人觉得这方法不是蠢到爆炸,要是我做ACT时一直并行处理的话不卡得要死!没错,接下来就是重点,既算法的优化。使用二分法的话,因为99999999小于2的二十七次方,即可保证最多只需要进行27次循环就能求得其整数根。
不过RM虽然输入只能8位,但其实输出变量理论可以到达255位,有需要你可以根据自己的变量上限进行调整,这里只用八位数作说明示范。


