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

4

2 回答 2

2

似乎您可以使用卡诺图或其等价物之一(例如Quine-McCluskey 算法)来解决问题

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

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

于 2012-05-24T23:02:51.443 回答
1

您所拥有的是USPS 服务代码的子集。F是First Class,S是Standard,M是手动,A是ASR,C是CSR,N是none,B是basic,U是full,Z是no confirm,Y是confirm。完整的代码集使得它更不可能有一个简单的公式,但您可以尝试联系 USPS 设计师。

于 2012-05-26T06:14:28.830 回答