玛丽模拟器分数的乘法

  • 本文关键字:模拟器 玛丽 marie
  • 更新时间 :
  • 英文 :


我有一项任务要使用Marie Simulator来计算圆的面积需要其半径

我知道在玛丽语言中没有乘法运算符,所以我们使用乘法将数字相加几次,所以如果我想乘以2*3,我可以把它写成3+3或2+2+2

但是当使用圆的面积时,π是3.14,我无法想象我怎么能得到它,所以有人能给我算法或代码吗?

提前谢谢。

MARIE没有浮点支持。

因此,应该参考你的课程作业或询问你的导师该做什么,因为这并不明显。

当然,在软件中做浮点运算是可能的,但其复杂性非同寻常,因此不太可能是他们想要的。

您可以使用定点算术、分数或小数。

这里有一个合适的解决方案:将其中一个数字(有小数点(乘以某个固定的常数因子,进行算术运算,然后相应地解释答案。例如,让我们用100作为因子,所以3.14由314表示。假设r是9,所以我们可以将其平方(9x9=81(,然后乘以81x314=2534。现在我们知道这个值太大了100倍,所以真正的答案是254.34。(你可以选择忽略.34,或者四舍五入,然后忽略.254。254仍然比我们从9x9x3得到的243更准确。(

不动点将所有数字乘以常数(通常是2的幂,因此二进制点位于相同的位位置(。加法相对简单,但乘法需要通过将两个源都按比例缩放来解释结果,这意味着答案是双重缩放的。

如果你需要用十进制数字测量半径,例如9.5,那么你可以将9.5和3.14都按100缩放。然后我们需要950x950,然后乘以314。答案是100x100x100太大,所以100000x太大。使用这种方法,MARIE提供的16位将溢出,因此您需要使用至少32位的算术(在16位机器上并非微不足道(。

你可以使用两种不同的比例因子,例如9.5表示95,3.14表示314。取95x95x314,它太大了10000x,所以相应地解释答案。尽管如此,这将溢出MARIE的16位

分数将保持所有数字的分子和分母。因此,3.14可以是314/100,9.5可以是95/10,并简化为157/50和19/2。要相加,你必须找到一个公约数,转换,然后求和分子。要进行乘法运算,请将分子和分母相乘:分子=19x19x157,分母=2x2x50。只适用于16位无符号算术,但仍溢出16位有符号算术。。

最后,二进制编码的十进制更像是一种字符串格式,每个字节或半字节(压缩十进制(存储一个十进制数字。加法和减法算法需要考虑可变长度的输入。

大整数形式也使用类似于二进制编码的十进制,但组成的元素要大得多,而不是单个十进制数字。

所有这些方法都需要一些思考,而且你想消除的限制越多,就需要做更多的工作。所以,我建议回到你的课程,找到他们真正想要的东西。

最新更新