私はしばらくこのサイトをスクロールしてきましたが、最近、いくつかの課題を実際に試すことに本当に興味を持ちました。既存のコードゴルフのトピックのいくつかを試してみようと思っていましたが、昨日はしばらくインターネットにアクセスできませんでしたが、その間に自分の挑戦を考えました。
あなたの仕事は、Floatsの配列a
と整数を受け取るプログラムまたは関数を作成し、n
各値a
をその横にある2つのn
時間の平均に設定することです。の値を増やして繰り返し使用n
すると、波のような動きが生成されます。
詳細:
- に1つの項目しかない
a
場合、またはn
0以下の場合、プログラムは元の配列を返す必要があります。 - 入力と出力は、視覚的に分離されている限り、任意の形式にすることができます。
各ステップについて:
- の最初のアイテムは
a
、それ自体と次のアイテムの平均になります。 - の最後のアイテムは
a
、それ自体と前のアイテムの平均になります。 - の他のアイテム
a
は、前のアイテムと次のアイテムの平均になります。 - 現在の配列ではなく、前のステップの配列から計算していることを確認してください!
テストケース:注:入力/出力はこの形式である必要はありません!
[0, 0, 1, 0, 0], 1 -> [0, 0.5, 0, 0.5, 0]
[0, 0, 1, 0, 0], 2 -> [0.25, 0, 0.5, 0, 0.25]
[0, 0, 1, 0, 0], 0 -> [0, 0, 1, 0, 0]
[0, 0, 1, 0, 0], -39 -> [0, 0, 1, 0, 0]
[0, 16, 32, 16, 0], 1 -> [8, 16, 16, 16, 8]
[0, 1, 2, 3, 4, 5], 1 -> [0.5, 1, 2, 3, 4, 4.5]
[0, 64], 1 -> [32, 32]
[0], 482 -> [0]
[32, 32, 32, 16, 64, 16, 32, 32, 32], 4 -> [33, 27, 40, 22, 44, 22, 40, 27, 33]
これはcode-golfであるため、バイト単位の最短回答が優先されます。勝者は1週間(8月1日)に選ばれます。がんばろう!
編集:勝者の@issacgにおめでとうございます。なんと18バイト!
n
5ではなく4でなければなりません。
n
とa
提供されていないケースを取り除くことです-実際にはあまり追加されません。