gpt4 book ai didi

algorithm - LMC 程序找出双倍中值和最小的 3 个输入之间的差异?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:43:15 25 4
gpt4 key购买 nike

我想编写一个 LMC 程序来有效地找到中位数的两倍与 3 个不同输入中最小的输入之间的差异。我需要一些帮助来为此找出算法。

这是我目前所拥有的:

INPUT 901 - Input first
STO 399 - Store in 99 (a)
INPUT 901 - Input second
STO 398 - Store in 98 (b)
INPUT 901 - Input third
STO 397 - Store in 97 (c)
LOAD 597 - Load 97 (a)
SUB 298 - Subtract 97 - 98 (a - b)
BRP 8xx - If value positive go to xx (if value is positive a > b else b > a)
LOAD 598 - Load 98 (b)
SUB 299 - Subtract 98 - 99 (b - c)
BRP 8xx - If value positive go to xx (if value is positive b > c else c > b)
LOAD 598 - Load 98 (b) which is the median
ADD 198 - Double to get "twice the median"

我在代码片段的末尾意识到我不知道哪个输入是最小的并且假设输入已经排序(但实际上没有)。

我认为我需要以某种方式将输入从最小到最大排序,以高效地执行此操作并确定同一分支内的最小输入和中值。

最佳答案

不懂小人机语言,不过没关系,算法题。

首先,你把三个参数的命名搞得有点困惑(先说99是a,然后说97是a)。

您必须加载 99、98、97 中的三个参数(比如 a、b、c)。然后,加载 99 (a) 并从 99 (a) 中减去 98 (b)。

如果结果为正(99 大于 98),则必须交换 98 和 99,因此两者中最小的在位置 99。

现在加载 98 (c) 并从中减去 97。如果结果为正,则交换 97 和 98,因此两者中最小的在位置 98。

最后,您在 98 和 99 位置有两个最小的数字,即最小值和中值。

加载 99 并从中减去 98。如果结果为正,则 99 包含中位数,98 包含最小值,否则相反。

现在你可以将中位数加倍,并计算这个数与最小数之间的差值。

关于algorithm - LMC 程序找出双倍中值和最小的 3 个输入之间的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33476638/

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