Switch 1 can be set to F or S.
Switch 2 can be set to M or A or C or N.
Switch 3 can be set to U or B.
Switch 4 can be set to Z or Y.
以下 3 位数字(认为是十进制) 代表所示开关设置的组合。 没有其他组合重要或不会遇到。
036 == F, M, U, Z
037 == S, M, U, Z
040 == F, M, B, Y
041 == F, M, U, Y
042 == S, M, B, Y
043 == S, M, U, Y
080 == F, A, B, Z
081 == F, A, U, Z
082 == F, C, B, Z
083 == F, C, U, Z
090 == S, A, B, Z
091 == S, A, U, Z
092 == S, C, B, Z
093 == S, C, U, Z
140 == F, A, B, Y
141 == F, A, U, Y
142 == S, A, B, Y
143 == S, A, U, Y
240 == F, C, B, Y
241 == F, C, U, Y
242 == S, C, B, Y
243 == S, C, U, Y
260 == F, N, U, Z
261 == S, N, U, Z
270 == F, N, U, Y
271 == S, N, U, Y
300 == F, N, B, Z
301 == S, N, B, Z
310 == F, N, B, Y
311 == S, N, B, Y
700 == F, M, B, Z
702 == S, M, B, Z
是否有一个简单的公式(不是查找表或树) 用于根据开关设置计算 3 位数字? 如果公式中包含未列出的组合也可以 上面,因为这些永远不会被输入。
最佳答案
似乎可以用 karnaugh maps 解决问题或其等效项之一(例如 Quine-McCluskey algorithm )
这样,3 位数字的二进制表示就是您的输出,并且您有 5 个输入,开关 1、3 和 4 各 1 位,开关 2 各 2 位。
如果您的输入是固定的(因此您不需要编写程序来给出表达式),则将卡诺方法与您知道的其他操作混合在一起可能会受益更多。卡诺图为您提供“与-或”表达式,但在您的应用程序中,您还可以使用加法和其他可用的操作。
关于algorithm - 有没有一个简单的公式可以计算这些代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10745961/