逆数計算サイクル


this
に触発された

リンクされたチャレンジでは、入力配列の元と逆の要素に追加を適用するように求められます。この課題では、他の基本的な数学演算を導入することで、少し難しくする予定です。

与えられた整数の配列は、 +、*、 - 、//、%、^
を循環します。ここで//は整数除算で、指数であり、配列の逆にそれを適用します。または、言い換えれば、上記の関数の1つを配列の各要素に適用し、2番目の引数は配列の逆であり、適用された関数は上記のリストを循環します。これはまだ混乱している可能性がありますので、例を使って作業してください。

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]

so the output for [1, 2, 3, 4, 5, 6, 7, 8, 9] would
be [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]

This is a
so shortest code (in bytes) wins!

ベストアンサー

Jelly、10バイト(フォーク

+×_:%*6ƭ"Ṛ

先日、これを迅速に実装しようとしていたので、すぐに使用するのは非常に驚きです。フォークとしてしか存在しないため、オンラインで試すことはできません。

サンプル出力

$ ./jelly eun '+×_:%*6ƭ"Ṛ' '[1,2,3,4,5,6,7,8,9]'
[10, 16, -4, 0, 0, 1296, 10, 16, 8]
$ ./jelly eun '+×_:%*6ƭ"Ṛ' '[5,3,6,1,1]'
[6, 3, 0, 0, 1]
$ ./jelly eun '+×_:%*6ƭ"Ṛ' '[2,1,8]'
[10, 1, 6]
$ ./jelly eun '+×_:%*6ƭ"Ṛ' '[11,4,-17,15,2,361,5,28]'
[39, 20, -378, 7, 2, 3.32948887119979e-44, 9, 308]

説明

+×_:%*6ƭ"Ṛ  Input: array
      6ƭ    Tie 6 dyads
+             Addition
 ×            Multiplication
  _           Subtraction
   :          Integer division
    %         Modulo
     *        Power
        "   Vectorize with
         Ṛ  Reverse

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です