对于游戏迷:请尝试逻辑门中的DPD到十进制也!
密密十进制(DPD)是一种有效地以二进制方式存储十进制数字的方法。它将三个十进制数字(000到999)存储在10位,这比朴素的BCD (以4位存储一位数字)要有效得多。
a到i是复制到十进制表示形式的位。0和1是输入或输出位模式中的确切位。x位。下面是从10位DPD到三位十进制数字的转换表。每个十进制数字表示为4位二进制(BCD).两边都从最重要的数字到最小的数字从左到右。
Bits => Decimal (Digit range)
a b c d e f 0 g h i => 0abc 0def 0ghi (0-7) (0-7) (0-7)
a b c d e f 1 0 0 i => 0abc 0def 100i (0–7) (0–7) (8–9)
a b c g h f 1 0 1 i => 0abc 100f 0ghi (0–7) (8–9) (0–7)
g h c d e f 1 1 0 i => 100c 0def 0ghi (8–9) (0–7) (0–7)
g h c 0 0 f 1 1 1 i => 100c 100f 0ghi (8–9) (8–9) (0–7)
d e c 0 1 f 1 1 1 i => 100c 0def 100i (8–9) (0–7) (8–9)
a b c 1 0 f 1 1 1 i => 0abc 100f 100i (0–7) (8–9) (8–9)
x x c 1 1 f 1 1 1 i => 100c 100f 100i (8–9) (8–9) (8–9)将DPD的10位转换为小数的3位。
DPD Decimal
0000000101 005
0001100011 063
0001111001 079
0000011010 090
0001011110 098
1010111010 592
0011001101 941
1100111111 879
1110001110 986
0011111111 999
1111111111 999 * Output is same regardless of the `x` bits默认的输入格式是10位的列表。比特应该遵循上面的确切顺序,或者相反的顺序。您可以选择使用等效的字符串或整数表示。与我的其他挑战不同,不允许重新排序或使用嵌套结构。
对于输入的[1, 1, 0, 0, 0, 1, 0, 1, 0, 0],允许使用以下格式:
[1, 1, 0, 0, 0, 1, 0, 1, 0, 0]"1100010100"788或0b11000101001100010100[0, 0, 1, 0, 1, 0, 0, 0, 1, 1],并以上述任何其他格式反转不允许采用下列格式:
[0, 0, 0, 0, 0, 1, 1, 1, 0, 1][[1, 1, 0], [0, 0, 1], [0, 1, 0, 0]]或[0b110, 0b001, 0b0100]默认输出格式是由3位小数组成的列表。每个数字应该表示为0到9,要么是整数,要么是字符。与输入一样,您可以选择字符串或整数表示形式。如果选择整数表示形式,则可以省略前导零。
适用标准的密码-高尔夫规则。每种语言的最短程序或函数(以字节为单位)获胜。
发布于 2018-11-22 14:43:58
发布于 2019-05-17 16:22:31
KimOyhus的回答港口到05AB1E。
•4’7þ2Ô€iΘEuĆΣk4Ѐ:ΘΛs‡CaΔʒì₁3¶rdiMß¡þи иø-˜)Â∍DY—WûQ@—Mā}Γ¤ÒÙ]p•44в2ôvÐyèP≠«}4ôC3.£粗略解释:
•yadayada•44в2ô # encoded list of nand gates
v # for each gate
ÐyèP≠ # compute the output of the gate
« # append it to the input
} # end of the loop
4ô # split the list of bits in groups of 4
C # convert each from binary to decimal
3.£ # keep the last 3 numbers
# implicit outputhttps://codegolf.stackexchange.com/questions/176371
复制相似问题