求教:使用 BrainF**k 实现加减乘除还有没有更好的实现思路

2020-09-19 10:35:36 +08:00
 VioletTec

最近接触到 BrainFuck

在学校闲着无聊打发时间把加减乘除的运算方法都手写了一遍。

发现实现减法、乘法和除法特别冗长复杂。

(一部分原因也是我太懒不想优化指针的移动次数以及格数(狗头)

乘法和除法还有减法都是暴力穷举方法运算,从 1 开始猜,猜到对为止,所以遇到大数字会很复杂。

各位 v2er 们有没有更好的解决思路,请求指点。

仓库地址:https://github.com/KeKe12030/BrainFuckMath

1049 次点击
所在节点    问与答
4 条回复
geelaw
2020-09-19 12:02:23 +08:00
为什么你的减法和加法区别那么大……

减法显然是 ,>,[-<->],两个数反复同时减 1

乘法只要反复做加法即可
>,>,< 读入因数到 2 3
[-
>[->+<<<+>>] 移动 3 到 4 并累加到 1
>[-<+>]<< 移动 4 到 3
]
>[-] 清空 3

带余除法可以反复做减法实现,不过要麻烦一些
geelaw
2020-09-19 12:04:18 +08:00
看了一下原来你的乘法和我的思路一样 - -
VioletTec
2020-09-19 13:27:46 +08:00
@geelaw 啊这,我走极端了,还以为减法很复杂,一时间脑子没转过来(哭)
感谢提供的除法可以取余的算法的思路,回来去玩一玩。
VioletTec
2021-04-19 21:40:56 +08:00
@geelaw 感谢大佬近一年前的回复。取余除法的坑已经于近日填上了。😂

https://blog.mcplugin.cn/p/777

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/708480

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX