Codegolf Rainbow:反射による色の並べ替え
前書き: 2つの虹に関連する課題を投稿した後:Codegolf Rainbow:Fun with Integer-Arrays 1とCodegolf Rainbow:Draw in Black-and-White 2、次のコメントは@ChrisMによってASCIIで作成されました(Draw in Black-and-White)挑戦: 多分あなたはこれを知っていて、それは設計によるものです(虹は菱形でもアスキーでもないことを知っています、そしてより高次の位置はより複雑になります)、しかし2番目の虹では色が反転していませんか? そして、彼は確かに正しい。二重の虹が見えるとき、2番目の虹は実際には最初の虹を反映しているため、色が逆になります。3つの虹は実際の二重の虹であり、3番目の虹は他の2つの虹の1つを反映しています。そして、4つの場合、2つの虹とそれらの2つの反射があります。 それでは、その事実を使用して、3番目の関連する課題を作成しましょう。 チャレンジ: 入力:正の整数でnあり>=2、かつサイズの整数のリスト>= n+1。 出力:次のように順序付けられた同じリスト: 最初に、入力リストをサイズのサブリストに分割しますn(末尾のサブリストは範囲内の任意のサイズにすることができます[1,n])。 次に、サブリストのm数に基づいて次のことを行います。 m - m//2サブリストの最初の量を最低から最高にソートします(//整数除算はです)。(つまり、6つのサブリストを使用すると、最初の3つは最低から最高にソートされます。5つのサブリストを使用すると、最初の3つは最低から最高にソートされます。) m//2サブリストの最後の量を最高から最低まで並べ替えます(//整数除算はです)。(つまり、6つのサブリストがある場合、最後の3つは最も高いものから最も低いものへと並べ替えられます。5つのサブリストがある場合、最後の2つは最も高いものから最も低いものへと並べ替えられます。) すべてのサブリストをマージして、再び単一のリストを形成します 例: 入力:n=7および[3,2,1,-4,5,6,17,2,0,3,5,4,66,-7,7,6,-5,2,10] ステップ1:[[3,2,1,-4,5,6,17],[2,0,3,5,4,66,-7],[7,6,-5,2,10]] ステップ2:[[-4,1,2,3,5,6,17],[-7,0,2,3,4,5,66],[10,7,6,2,-5]] ステップ3 /出力:[-4,1,2,3,5,6,17,-7,0,2,3,4,5,66,10,7,6,2,-5] 入力:n=4および[7,4,-8,9,3,19,0,-23,-13,13] ステップ1:[[7,4,-8,9],[3,19,0,-23],[-13,13]] ステップ2:[[-8,4,7,9],[-23,0,3,19],[13,-13]] ステップ3 /出力:[-8,4,7,9,-23,0,3,19,13,-13] チャレンジルール: 整数入力nは1より大きいことが保証されています。 integer-listのサイズは、より大きいことが保証されていますn。 末尾のサブリストは、より小さくすることができますn(例とテストケースで確認できます)。 I / Oフォーマットは、あらゆる合理的なフォーマットに柔軟に対応できます。整数または小数のリスト/配列、コンマ/スペース/改行で区切られた文字列、整数のストリームなどにすることができます(出力は、ステップ2のようなリストの2Dリストではない場合があります。ステップ3でリストをフラットに戻しますこのチャレンジには必須です。) 一般的なルール: これはcode-golfなので、バイト単位の最短の回答が優先されます。 コードゴルフ言語では、コードゴルフ言語以外の言語で回答を投稿しないようにしないでください。「あらゆる」プログラミング言語について、可能な限り短い答えを考え出すようにしてください。 回答には標準規則が適用されるため、STDIN / STDOUT、関数/メソッドを適切なパラメーターと戻り値の型の完全なプログラムで使用できます。あなたの電話。 …