谜题 IBM-210
用五输入双输出模块统计十二个比特
IBM Research · Ponder This · 2015 年 10 月
IBM Ponder This #210 · 2015 年 10 月
统计十二个输入比特中 1 的个数,是一个十二位输入、四位输出的函数。使用尽可能少的任意“五输入、两输出”布尔模块实现它。
每行用五个字母指定一个模块的输入,首字母为最高位;后接 32 个四进制数字,按五位输入顺序表示两位输出值,第一输出为高位。新输出依次使用后续字母。最后一行列出四个最终输出位的编号,按高位到低位排列。
以下较小例子用两个三输入双输出模块,比较由 a,b 与 c,d 组成的两个二位数:
acd02113302
bef21133123
7 8
第一行把 a,c,d 映到 e,f,第二行把 b,e,f 映到 g,h,最终输出第 7、8 位,即 g,h。第一模块的八个输出依次为 00、10、01、01、11、11、00、10;整个例子在 2a+b 小于、等于、大于 2c+d 时,分别输出 01、10、11。本题实际需要四位计数输出。
解答
认真尝试后再打开待补充。