Algorithm 有没有一个简单的公式来计算这些代码?

Algorithm 有没有一个简单的公式来计算这些代码?,algorithm,encoding,Algorithm,Encoding,以下3位数字(据信为十进制) 表示所示开关设置的组合。 不会遇到任何其他组合,也不会遇到其他组合 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位数字? 如果公式中包含未列出的组合,则可以 因为它们永远不会被输入。

以下3位数字(据信为十进制) 表示所示开关设置的组合。 不会遇到任何其他组合,也不会遇到其他组合

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位数字? 如果公式中包含未列出的组合,则可以
因为它们永远不会被输入。

看起来像是你可以用它或它的等价物来解决的问题(例如)

这样,3位数字的二进制表示就是输出,有5个输入,开关1、3和4各1位,开关2各2位


如果您的输入是固定的(因此您不需要编写程序来给出表达式),那么将卡诺方法与您知道的其他操作混合使用可能会使您受益更多。卡诺图为您提供and或表达式,但在应用程序中,您还可以使用加法和其他可用操作。

您得到的是。F为一级,S为标准,M为手动,A为ASR,C为CSR,N为无,B为基本,U为满,Z为未确认,Y为确认。完整的代码集使得有一个简单公式的可能性更小,但您可以尝试联系USPS设计师。

真的吗?您没有定义任何modus ponens规则,您希望我们为您完成工作?这不是一个真正的编程问题,但很有趣。只是好奇:来源是什么?作业游戏藏宝图?将左侧转换为二进制。将右侧转换为每个字母的0/1(/2/3)。尝试找到一个模式或添加到描述中。它看起来像是一个查找表在您的未来:)这将是三个非常丑陋的卡诺图@dasblinkenlight,这些是在硬件设计中基于某些输入获取输出表达式的最常用方法。如果它变得丑陋,那就倒霉了。好吧,我在嵌入式时代就做过卡诺地图,所以这个地区对我来说很熟悉。解决一个5变量的KM是没有乐趣的,更不用说你将得到作为输出的不可读代码了。在我看来,一个小的32个条目的查找表会更好。@dasblinkenlight,事实上,它是一个10个变量KM,其中5个(因为有5个输出),所以是的,它比你想象的更糟糕然而,我相信奎因·麦克罗斯基应该是相当可行的。这里的关键是,这家伙的大部分数据都是“不在乎”。此外,quine-mcclusky算法肯定已经编写好了,OP可以使用它。作为旁注,我也会使用一个查找表,但是嘿,OP明确要求一种不涉及查找表的方法。!非常感谢!自从发布以来,这一直困扰着我。
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