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

时间:2012-05-24 22:05:55

标签: algorithm encoding

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

2 个答案:

答案 0 :(得分:2)

似乎可以使用karnaugh maps或其中一个等价物来解决(例如Quine-McCluskey algorithm

这样,3位数的二进制表示就是输出,你有5个输入,1个用于开关1,3和4,2个用于开关2。

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

答案 1 :(得分:1)

你得到的是a subset of USPS service codes。 F为头等,S为标准,M为手动,A为ASR,C为CSR,N为无,B为基本,U为满,Z为无确认,Y为确认。完整的代码集使得它更容易出现一个简单的公式,但您可以尝试联系USPS设计师。