受这启发
在链接挑战中,我们被要求对输入数组的原始元素和反向元素进行添加。在这个挑战中,通过引入其他基本的数学运算,我们将使它变得更加困难。
给定一个整数数组,循环通过+, *, -, //, %, ^,其中//是整数除法,^是指数,同时将它应用到数组的反面。或者,换句话说,将上述函数中的一个应用于数组的每个元素,第二个参数是数组的反面,函数在上面的列表中循环应用。这可能仍然是令人困惑的,所以让我们通过一个例子。
Input: [1, 2, 3, 4, 5, 6, 7, 8, 9]
Reverse: [9, 8, 7, 6, 5, 4, 3, 2, 1]
[ 1, 2, 3, 4, 5, 6, 7, 8, 9]
Operand: + * - / % ^ + * -
[ 9, 8, 7, 6, 5, 4, 3, 2, 1]
Result: [10, 16, -4, 0, 0, 1296, 10, 16, 8]所以[1, 2, 3, 4, 5, 6, 7, 8, 9]的输出将是[10, 16, -4, 0, 0, 1296, 10, 16, 8]
若要覆盖角情况,输入将永远不包含0,但可能包含从负无穷到正无穷的范围内的任何其他整数。如果需要,可以将输入作为表示数字的字符串列表。
input => output
[1, 2, 3, 4, 5, 6, 7, 8, 9] => [10, 16, -4, 0, 0, 1296, 10, 16, 8]
[5, 3, 6, 1, 1] => [6, 3, 0, 0, 1]
[2, 1, 8] => [10, 1, 6]
[11, 4, -17, 15, 2, 361, 5, 28] => [39, 20, -378, 7, 2, 3.32948887119979e-44, 9, 308]这是一个密码-高尔夫所以最短的代码(以字节为单位)获胜!
发布于 2017-09-11 20:05:14
发布于 2017-09-11 21:00:59
发布于 2022-05-07 04:33:20
sequences.repeating,69字节[ dup reverse { + * - /i mod ^ } over length cycle [ execute ] 3map ] ! { 1 2 3 4 5 6 7 8 9 }
dup ! { 1 2 3 4 5 6 7 8 9 } { 1 2 3 4 5 6 7 8 9 }
reverse ! { 1 2 3 4 5 6 7 8 9 } { 9 8 7 6 5 4 3 2 1 }
{ + * - /i mod ^ } ! { 1 2 3 4 5 6 7 8 9 } { 9 8 7 6 5 4 3 2 1 } { + * - /i mod ^ }
over ! { 1 2 3 4 5 6 7 8 9 } { 9 8 7 6 5 4 3 2 1 } { + * - /i mod ^ } { 9 8 7 6 5 4 3 2 1 }
length ! { 1 2 3 4 5 6 7 8 9 } { 9 8 7 6 5 4 3 2 1 } { + * - /i mod ^ } 9
cycle ! { 1 2 3 4 5 6 7 8 9 } { 9 8 7 6 5 4 3 2 1 } { + * - /i mod ^ + * - }
[ execute ] 3map ! { 10 16 -4 0 0 1296 10 16 8 }https://codegolf.stackexchange.com/questions/142426
复制相似问题