プログラミングパズルとコードゴルフ

プログラミング愛好家やコードゴルファーのためのQ&A

3
あなたの機能の時間を計りますが、週末は仕事をしていません
私の上司は、2つの整数を加算するのにかかる時間を知る必要があります。しかし、私は週末に仕事をするのは好きではありませんし、私のコードもそうではないと思います。問題は、上司は要求の厳しい男であり、時間がかかることを確認するために時間をかけて投入する必要があると考えていることです。 次の短いプログラムを書いてもらえますか? 2つの整数を受け入れ、加算の正しい結果と、加算の実行にかかる時間を返します-この時間は妥当であり、コードの実行時間に基づいている必要があります。ただし、時間制限のあるコード間でいくつかの操作をこっそり実行する必要がある場合は、許可されているはずのコードよりも少し長く実行します。ただし、偽の時間を出力することはできません。 週末のローカル時間のコードでは機能しません(間違った結果を返すだけでなく、コードが壊れたり、エラーが発生したり、実行に失敗したりする必要があります) 週末に機能しない理由がすぐにはわからない 私は必ずいくつかのスマートな民族なので、ありますよ、私は最初の基準は一種奇妙なのですけど、私はしかし、基準3について疑いを上げることなく、必要であれば必ず人は、日付/時刻のライブラリをインポート可能性が作りたかった-10文字標準日付ライブラリのカレンダー機能を使用せずにこれを実行できる人 「標準の日付/時刻ライブラリ」について 標準日時ライブラリの例には、pythons datetime、javascript dateオブジェクトライブラリjava.util.Dateなどが含まれます。pythons timeitモジュールなどの実行の時間差を計算する関数は、ボスがコードのタイミングを期待しているため、この基準に違反しません。いくつかのケースでは、これらのライブラリは、アクセスにインポートする必要があります任意のそのリターンが別々与えることができる日時オブジェクトを構造化することを整数として、現在のエポックの開始からの時間を返すコール機能しますが、カレンダー機能を許可して、時間の関数を時間、日などは許可されません。 編集:Dan04の質問に関して、コードは、いつ機能するか、または機能しないかの4つの基準を満たしている必要があります。また、コードが時間をチェックする方法を説明する必要があります。月曜日の朝/金曜日の夜のたるみは、コードを短縮するための創造的な方法の機会を与えるはずです。 土曜日の朝00:00:00から日曜日の夜23:59:59までは動作しません。 月曜日の朝06:00:00から金曜日の夕方19:59:59まで常に動作する必要があります 月曜日の朝00:00:00から月曜日の朝5:59:59まで働くか、または働かないかのどちらか 金曜日の夜20:00:00から金曜日の夜23:59:59までは仕事ができる、または仕事ができない edit2:すぐにわかるように、次の3つの基準を満たす必要があります。 関数DayOfWeekの時間を計算するために使用せずに、呼び出した(または類似した)関数を呼び出してはなりません。 土曜日または日曜日またはそれらの略語を英語で使用してはなりません。 曜日を決定するために、またはコードを実行するかどうかを決定するために使用されない同じ名前の変数がない場合、SatまたはSunを使用しないでください。

3
ポリゴンプレフィックス
ポリゴンは、その辺の数に基づいて名前が付けられます。五角形には5つの辺があり、八角形には8つの辺があります。しかし、彼らはどのように命名されていますか?248辺のポリゴンの名前は何ですか? すべてのポリゴンの末尾にが付き-gonます。辺の数に応じて、各ポリゴンに特定のプレフィックスがあります。小さい番号のプレフィックスは次のとおりです。 3 - tri 4 - tetra 5 - penta 6 - hexa 7 - hepta 8 - octa 9 - nona 10 - deca 11 - undeca 12 - dodeca 13 - triskaideca 14 - tetradeca 15 - pentadeca 16 - hexadeca 17 - heptadeca 18 - octadeca …

22
N個の除数を持つ最小数を与える
関数は自然数を取り、それ自体を含む正確にその数の除数を持つ最小の自然数を返します。 例: f(1) = 1 [1] f(2) = 2 [1, 2] f(3) = 4 [1, 2, 4] f(4) = 6 [1, 2, 3, 6] f(5) = 16 [1, 2, 4, 8, 16] f(6) = 12 [1, 2, 3, 4, 6, 12] ... この関数は除数のリストを返す必要はありません。それらは例のためだけにあります。

30
この乗算表を印刷する
最短のコードを記述して、次の乗算テーブルを印刷します。 1×1=1 1×2=2 2×2=4 1×3=3 2×3=6 3×3=9 1×4=4 2×4=8 3×4=12 4×4=16 1×5=5 2×5=10 3×5=15 4×5=20 5×5=25 1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36 1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49 1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64 1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81

26
三角形のエリアサイドサイドサイド
三角形の3辺を与え、この三角形の領域を印刷します。 テストケース: で: 2,3,4 アウト: 2.90473750965556 で: 3,4,5 アウト: 6 三辺a、b、cは常にa> 0、b> 0、c> 0、a + b> c、b + c> a、c + a> bであると仮定します。
17 code-golf  math 

3
次の素数を見つけるための最速のコード
問題は次のとおりです。 入力:整数n 出力:より大きい最小の素数n。 課題は、これを行うために可能な限り高速なコードを提供することです。おおよその10^8 サイズから始まり、コンピューターで1分 10秒10^200以上かかるまで、サイズを2倍にして値のコードをテストします 。 勝ったコードは、最大入力サイズの次の素数を見つけます。 比較として、Pythonで書かれた単純なふるいは10^8、約20数秒で次の素数を見つけることができます。 4GB RAM ubuntuコンピューターでテストできるという要件は厳しいものです。すべてのコードは(両方の意味で)無料でなければならず、ライブラリを使用する場合は、無料で簡単にインストールできる必要があります。報告された偽の素数は、すぐに提出を失格にします。 コードが外部ライブラリを使用せずにその言語で完全に記述されている場合、各プログラミング言語の受賞者に対しても個別の表彰を授与します。また、競争が進むにつれて最速タイムのランニングテーブルを維持し、人々が自分の様子を確認できるようにします。 これまでのテーブル Python。驚異的な357数字素数343239883006530485749095039954069660863471765007165270469723172959277159169882802606127982033072727748864815569574042901856099399985832190628701414555752857600000000000000000000000000000000000000002872284792758930912601189043411951050852357613658978971208596097634095500808832510259693761982135208603287199546795000697807728609476163156438356035166156820611は、によって提供されたコードを使用した10秒未満の最終的な数字でしたprimo。誰もがこの最初のエントリーを破りますか?

2
Befungeプログラムを圧縮する
Befungeは2次元の難解なプログラミング言語です。基本的な考え方は、(1文字の)コマンドが2次元グリッドに配置されるということです。制御フローはグリッド上を移動し、通過するコマンドを実行し、矢印にヒットすると方向を変更します(>^<v)。コマンドはスタックベースです。このリストを参照してください。http://esolangs.org/wiki/Befungeも参照してください。 Befunge-98の仕様が利用可能です。 問題 Befungeプログラムをよりコンパクトな表現に変換するプログラムを作成します。たとえば、次のプログラムは印刷します0: > 0 v > @ . ^ < この場合、スペースの行を削除することにより、プログラムの動作を変更せずに圧縮できます。 >0v >@. ^ < より洗練された変換は、コマンドのシーケンスを回転またはミラー化し、プログラムを圧縮するために不要な制御フローコマンドを排除できます。たとえば、このプログラムでは: >12345v 6 v....7< . . . @ プログラムの終わりを穴に押し込むかもしれません。 >12345v >...@ 6 ^....7< 最初の例では、可能な限り最もコンパクトなプログラムは >0.@ 出力プログラムで同じ結果が得られる限り、任意の変換を使用できます。 入力プログラム 入力プログラムは有効なBefunge-98プログラムです。 入力プログラムが決定論的であると仮定することができます。つまり、外部状態を読み取るコマンドは使用しません。ユーザー入力コマンド&と~、ランダマイザー?、および自己修正コードコマンドpとgです。 入力プログラムが終了することを想定できます。 得点 これはコードゴルフではありませんが、コードゴルフを実行するプログラムを作成する問題です。 入力はテストケースのセットです(上記の入力制限を満たすBefungeプログラム)。合計スコアは、テストケースのスコアの合計です。 各テストケースのスコア スコアは、出力プログラムの空でないセルの凸包の面積です。各セルは、4つの角がデカルト平面の格子点である正方形として扱われます。たとえば、 > v @ < 9.5のスコアを取得します。 プログラムが特定の入力で妥当な時間とメモリで終了しない場合、スコアは入力プログラムのスコアです。(これは、プログラムが時間内に終了しない場合、入力プログラムを変更せずに出力する時間制限ラッパーを簡単に追加できるためです。) プログラムで処理した後、テストケースプログラムの結果が異なる(または終了しない)場合、スコアは入力プログラムのスコアに100ポイントのペナルティを加えたものです。

3
JVMバージョンを検出するJavaコードを作成します
目的は、互換性の変更、副作用、バグ、および/またはあるバージョンでは別の方法で、別のバージョンでは別の方法で動作する未定義の動作に依存するJVMバージョンを検出するJavaコードを書くことです。さらに、コードは、空白や読みやすい変数名を犠牲にすることなく、少なくとも少し読みやすくする必要があります。 その目的を確実にするために、正確な正式なルールは次のとおりです。 コードはjavaで記述され、実行中のJREバージョンを出力する必要があります。 コードは、Javaバージョンを検出するために特別に提供されたJDKまたはJRE APIを使用したり、JDKまたはJREバージョンを無料で提供したりしないでください。 コードはリフレクションを使用しないでください。 このコードはHotspot Java SE 5、6、および7でのみ動作する必要がありますが、他のJVMでも動作する場合があります。 コードでは、クラスパスでサードパーティのライブラリを使用しないでください。 コードは、Javaであるかどうかにかかわらず、他のプロセスを開始してはなりません。 コードは環境変数を使用しないでください。 コードは、既存のファイルまたはフォルダーを探すためにファイルシステムを検索してはなりません。 コードは単一のファイルに含まれ、public static void main(String[] args)またはを介して呼び出される必要がありますpublic static void main(String... args)。 コードは、JREに存在する非パブリックAPIを使用してはなりません。 コードは、実行中にNoClassDefFoundError、NoSuchMethodError、ClassNotFoundException、またはNoSuchMethodExceptionを生成してはなりません。 コードは、インターネットまたはローカルネットワークから切断されたシステムで実行する必要があります。 バージョンで1つの方法で動作し、別のバージョンで別の方法で動作する理由を説明する必要があります。 得点 最適なソリューションの測定に使用される方法はmax(n / s)です。nは、これらのルール(少なくともバージョン5、6、および7)に違反することなく検出された異なるJavaバージョンの数であり、sは字句トークンの数です。ソリューションで。

10
昇順行列
「昇順行列」は、任意の要素がそれぞれの行と列で以前に使用されていない最小の利用可能な要素である整数の無限行列(0を含む)です。 | 1 2 3 4 5 6 ... --+---------------- 1 | 0 1 2 3 4 5 ... 2 | 1 0 3 2 5 4 ... 3 | 2 3 0 1 6 7 ... 4 | 3 2 1 0 7 6 ... 5 | 4 5 …
17 code-golf  math  matrix  programming-puzzle  code-golf  music  code-challenge  programming-puzzle  code-golf  fastest-code  code-golf  number  game  code-golf  combinatorics  code-golf  math  sequence  restricted-complexity  code-golf  number  random  code-golf  array-manipulation  code-golf  math  matrix  code-golf  number  sequence  counting  code-golf  math  number  sequence  popularity-contest  number  sequence  code-golf  music  code-golf  number  code-golf  ascii-art  arithmetic  code-golf  code-golf  number  code-golf  code-challenge  array-manipulation  code-golf  grammars  code-challenge  polyglot  code-golf  game  math  python  programming-puzzle  code-challenge  king-of-the-hill  code-challenge  fastest-code  primes  number-theory  number-theory  primes  fastest-code  factoring  popularity-contest  compile-time  code-golf  math 

7
C:AES FIPS-197 SubBytesテーブルを定数時間コードに置き換えます
FIPS-197(高度暗号化標準 AESとしても知られているが)、これは、多用なるSubBytesように実装することができ、 unsigned char SubBytes(unsigned char x) { static const unsigned char t[256] = { 0x63,0x7C,0x77,0x7B,0xF2,0x6B,0x6F,0xC5,0x30,0x01,0x67,0x2B,0xFE,0xD7,0xAB,0x76, 0xCA,0x82,0xC9,0x7D,0xFA,0x59,0x47,0xF0,0xAD,0xD4,0xA2,0xAF,0x9C,0xA4,0x72,0xC0, 0xB7,0xFD,0x93,0x26,0x36,0x3F,0xF7,0xCC,0x34,0xA5,0xE5,0xF1,0x71,0xD8,0x31,0x15, 0x04,0xC7,0x23,0xC3,0x18,0x96,0x05,0x9A,0x07,0x12,0x80,0xE2,0xEB,0x27,0xB2,0x75, 0x09,0x83,0x2C,0x1A,0x1B,0x6E,0x5A,0xA0,0x52,0x3B,0xD6,0xB3,0x29,0xE3,0x2F,0x84, 0x53,0xD1,0x00,0xED,0x20,0xFC,0xB1,0x5B,0x6A,0xCB,0xBE,0x39,0x4A,0x4C,0x58,0xCF, 0xD0,0xEF,0xAA,0xFB,0x43,0x4D,0x33,0x85,0x45,0xF9,0x02,0x7F,0x50,0x3C,0x9F,0xA8, 0x51,0xA3,0x40,0x8F,0x92,0x9D,0x38,0xF5,0xBC,0xB6,0xDA,0x21,0x10,0xFF,0xF3,0xD2, 0xCD,0x0C,0x13,0xEC,0x5F,0x97,0x44,0x17,0xC4,0xA7,0x7E,0x3D,0x64,0x5D,0x19,0x73, 0x60,0x81,0x4F,0xDC,0x22,0x2A,0x90,0x88,0x46,0xEE,0xB8,0x14,0xDE,0x5E,0x0B,0xDB, 0xE0,0x32,0x3A,0x0A,0x49,0x06,0x24,0x5C,0xC2,0xD3,0xAC,0x62,0x91,0x95,0xE4,0x79, 0xE7,0xC8,0x37,0x6D,0x8D,0xD5,0x4E,0xA9,0x6C,0x56,0xF4,0xEA,0x65,0x7A,0xAE,0x08, 0xBA,0x78,0x25,0x2E,0x1C,0xA6,0xB4,0xC6,0xE8,0xDD,0x74,0x1F,0x4B,0xBD,0x8B,0x8A, 0x70,0x3E,0xB5,0x66,0x48,0x03,0xF6,0x0E,0x61,0x35,0x57,0xB9,0x86,0xC1,0x1D,0x9E, 0xE1,0xF8,0x98,0x11,0x69,0xD9,0x8E,0x94,0x9B,0x1E,0x87,0xE9,0xCE,0x55,0x28,0xDF, 0x8C,0xA1,0x89,0x0D,0xBF,0xE6,0x42,0x68,0x41,0x99,0x2D,0x0F,0xB0,0x54,0xBB,0x16}; return t[x];} この関数は任意ではありません。これは可逆マッピングであり、ガロア体の反転とそれに続くアフィン変換で構成されます。詳細はすべて、FIPS-197セクション5.1.1またはここのセクション4.2.1(わずかに異なる名前の下)にあります。 テーブルとしての実装の1つの問題は、いわゆるキャッシュタイミング攻撃にさらされることです。 したがって、あなたの使命はSubBytes()、一定の動作を示す上記の機能の正確な代替を考案することです。の入力xに依存するものSubBytesが使用されない場合もそうだと仮定します。 配列インデックスとして、 制御オペランドとしてif、while、for、case、またはオペレータ?:; オペレータの任意のオペランドとして&&、||、!、==、!=、<、>、<=、>=、*、/、%。 演算子の右オペランドとして>>、<<、*=、/=、%=、<<=、>>=。 勝ちのエントリでは、単項演算子のための5の重量と、入力に依存するデータパスで実行されるオペレータの数から得られた最も低いコストを有するもの、であろう-と~十分ほど<<1、>>1、+1、-1。他のすべての演算子の重み7、他のカウントとのシフト、または他の定数の加算/サブ(型キャストとプロモーションは無料)。原則として、そのコストはループを展開しても変化せず、入力には依存しませんx。タイブレーカーとして、空白とコメントを削除した後の最短コードでの答えが勝ちます。 UTCの2013年にできるだけ早くエントリを回答として指定する予定です。私はある程度の知識がある言語での回答を検討し、サイズに最適化されていないCへの単純な翻訳としてランク付けします。 好意的なオペレーター、無料のキャストとプロモーション、およびサイズのランキングの最初の省略+1および謝罪-1。*単項の場合と乗算の両方で禁止されていることに注意してください。

21
すべての印刷可能な非英数字ASCIIシンボルを使用するプログラムを作成する
特に、ソースコードでこれらの各シンボルを少なくとも1回使用します。 ! " # $ % & ' () * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ コメント、文字列リテラル、正規表現(または他の種類のリテラルなど)内のシンボルはカウントされません(ただし、/**/or などの区切り文字""はカウントされます)。 プログラムはアクションを実行しないでください。コンパイルするだけで、実行時に何もしません。 何らかの理由で、選択した言語で一部のシンボルを使用できない場合は、そのことを厳密に説明してください(除外する対象と理由)。 更新:いくつかの回答では、正規表現で記号を使用しました。これは少し問題があると思いますが、文字列リテラルやコメントに入れるのと同じことです(そのため、その要件になどを入れました)。これなしで試してください。上記の要件も更新しました。 更新:最短のコードが勝ちます(code-golfとしてタグ付けされます)。提案されているように、タイブレーカーの基準が必要になる可能性が最も高くなります。同点がある場合、勝者はASCIIシンボルが可能な限り順序付けられているようにすることをお勧めします。正式:リストされた各シンボルの最初の出現をプログラムから除外します。これにより、リストされたシンボルの置換が行われます。順列の反転数が少ないプログラムが優先されます。 更新: C / ++、Java、Scala、Haskellなどの標準/メインストリーム言語でのソリューションをいくつか見たいです。

2
正規表現のコンパイル
このタスクでは、正規表現を読み取り、その正規表現が入力文字列を受け入れるかどうかを出力する別のプログラムを生成するプログラムを作成する必要があります。出力は、提出物と同じ言語で書かれたプログラムでなければなりません。 入力 入力は、次のABNFに一致する正規表現rです(最初の生産規則はですREGEX)。 REGEX = *( STAR / GROUP / LITERAL / ALTERNATIVE ) STAR = REGEX '*' GROUP = '(' REGEX ')' LITERAL = ALPHA / DIGIT ALTERNATIVE = REGEX '|' REGEX 入力がこの文法と一致しない場合、プログラムの動作は未定義です。 解釈 入力を正規表現として解釈します。ここ*で、Kleene-star(左引数を0回以上繰り返すことを意味します)|は代替で(あり、)グループであり、演算子はまったく連結されていません。グループ化はスターより優先され、スターは連結より優先され、連結は代替より優先されます。 正規表現が文字列全体と一致する場合、文字列は受け入れられると言われます。 出力 プログラムの出力は、文字列読み込み、あなたの投稿と同じ言語で書かれた別のプログラムであるのかどうか、実行時に方法を定義した実装では、出力rは受け入れ秒を終了。出力はユーザー定義の方法で実行できますが、受け入れられたプログラムと拒否されたプログラムの出力は2つだけでなければなりません。 出力プログラムの入力が2 16 -1バイトより長くなることはないと想定できます。 制限事項 提出物も、提出物によって生成されたプログラムも、組み込み機能またはライブラリを使用できません。 正規表現に一致 正規表現を変換する 正規表現をコンパイルする 文法からパーサーを生成する 提出物が簡単になるように問題を簡素化する 得点 …

17
カードのデッキを8回完全にシャッフルした結果を表示する
説明 完全なシャッフルは、カードのデッキが正確に半分に分割され、各パイルからのカードが交互に交互配置される場所です。オリジナルのボトムカードとオリジナルのトップカードは、完全にシャッフルした後も保存する必要があります。 8回の完全なシャッフルの後、標準の52カードデッキは元の順序に戻ります。 チャレンジ 8連続の完全なシャッフルを通過するカードのデッキの状態を表示するプログラムを作成します。デッキ内の各カードの番号とスーツを順番に表示する限り、人間が読めるデッキの表現を使用できます。9つの州すべてについて、すべてのカードの表現を表示する必要があります。 これはコードゴルフであるため、最短のソリューションが優先されます。 出力例 Javascriptのこの実装例によって生成された出力例を次に示します AS,AC,AD,AH,2S,2C,2D,2H,3S,3C,3D,3H,4S,4C,4D,4H,5S,5C,5D,5H,6S,6C,6D,6H,7S,7C,7D,7H,8S,8C,8D,8H,9S,9C,9D,9H,10S,10C,10D,10H,JS,JC,JD,JH,QS,QC,QD,QH,KS,KC,KD,KH AS,7D,AC,7H,AD,8S,AH,8C,2S,8D,2C,8H,2D,9S,2H,9C,3S,9D,3C,9H,3D,10S,3H,10C,4S,10D,4C,10H,4D,JS,4H,JC,5S,JD,5C,JH,5D,QS,5H,QC,6S,QD,6C,QH,6D,KS,6H,KC,7S,KD,7C,KH AS,4C,7D,10H,AC,4D,7H,JS,AD,4H,8S,JC,AH,5S,8C,JD,2S,5C,8D,JH,2C,5D,8H,QS,2D,5H,9S,QC,2H,6S,9C,QD,3S,6C,9D,QH,3C,6D,9H,KS,3D,6H,10S,KC,3H,7S,10C,KD,4S,7C,10D,KH AS,9S,4C,QC,7D,2H,10H,6S,AC,9C,4D,QD,7H,3S,JS,6C,AD,9D,4H,QH,8S,3C,JC,6D,AH,9H,5S,KS,8C,3D,JD,6H,2S,10S,5C,KC,8D,3H,JH,7S,2C,10C,5D,KD,8H,4S,QS,7C,2D,10D,5H,KH AS,5S,9S,KS,4C,8C,QC,3D,7D,JD,2H,6H,10H,2S,6S,10S,AC,5C,9C,KC,4D,8D,QD,3H,7H,JH,3S,7S,JS,2C,6C,10C,AD,5D,9D,KD,4H,8H,QH,4S,8S,QS,3C,7C,JC,2D,6D,10D,AH,5H,9H,KH AS,3S,5S,7S,9S,JS,KS,2C,4C,6C,8C,10C,QC,AD,3D,5D,7D,9D,JD,KD,2H,4H,6H,8H,10H,QH,2S,4S,6S,8S,10S,QS,AC,3C,5C,7C,9C,JC,KC,2D,4D,6D,8D,10D,QD,AH,3H,5H,7H,9H,JH,KH AS,2S,3S,4S,5S,6S,7S,8S,9S,10S,JS,QS,KS,AC,2C,3C,4C,5C,6C,7C,8C,9C,10C,JC,QC,KC,AD,2D,3D,4D,5D,6D,7D,8D,9D,10D,JD,QD,KD,AH,2H,3H,4H,5H,6H,7H,8H,9H,10H,JH,QH,KH AS,AD,2S,2D,3S,3D,4S,4D,5S,5D,6S,6D,7S,7D,8S,8D,9S,9D,10S,10D,JS,JD,QS,QD,KS,KD,AC,AH,2C,2H,3C,3H,4C,4H,5C,5H,6C,6H,7C,7H,8C,8H,9C,9H,10C,10H,JC,JH,QC,QH,KC,KH AS,AC,AD,AH,2S,2C,2D,2H,3S,3C,3D,3H,4S,4C,4D,4H,5S,5C,5D,5H,6S,6C,6D,6H,7S,7C,7D,7H,8S,8C,8D,8H,9S,9C,9D,9H,10S,10C,10D,10H,JS,JC,JD,JH,QS,QC,QD,QH,KS,KC,KD,KH

4
ASCIIアート画像を回転させる
すべてのASCII文字のうち、それらの一部が同じ基本文字の回転であるグループを形成していることは簡単にわかります。たとえば、V > ^ <。これにより、90度の倍数で回転できるASCIIアートを構築できる可能性があります。 チャレンジ あなたの目標は、ASCIIアートと、それをSTDINから回転させる度数を受け入れ、回転したASCIIアートをSTDOUTに印刷するプログラムをゴルフすることです。 入力の最初の行で、プログラムは数値Nを受け取ります。この数値は、ASCIIアートの幅と高さを表します。 その後、それぞれ正確にN文字のN行が追加されます(改行はこの数にはカウントされません)。アートのサイズは常に正方形になりますが、正方形にするためにスペースの形でパディングが含まれることがあります。 最後の行にもう1つ、90、180、または270の数字が表示されます。これは、画像を時計回りに何度回転させるかを表します。 注:入力画像には、正しい量だけ回転できる文字のみが含まれます。入力がこれらの要件に正確に一致しない場合、特定の動作は必要ありません。 出力として、プログラムは各行の後に改行を付けて、N文字の正確にN行を印刷する必要があります。オリジナルの各文字が回転したバージョンに置き換えられ、画像内の正しい場所に移動されるように、画像を回転させる必要があります。 例(あまり美しくないASCIIアート) 入力 5 <- || | |V +->+ |O <--+ 90 出力 ^ +-^ | | | | V +-+-- O <- (90と270による回転は、文字が正方形ではないため、あまり良く見えません) 入力 6 + /\ + | \ \| ( \/| \ ) I \ / :) …

17
循環文字シフト後に有効なプログラムを書く
非常に難しい可能性がありますが、このサイトから驚くべきことが出てきました。 目標は、任意の言語で任意のプログラムを作成することです。キャッチは、プログラムが後に有効でなければならないということである任意の文字の循環シフト。 循環文字シフトは、循環シフトに非常に似ています。いくつかの例で明確なことがわかります。 プログラムについて int main() { return 0; } 6文字左にシフトすると、次のようになります。 in() { return 0; }int ma 左に1文字シフトすると、次の結果が得られます。 nt main() { return 0; }i 10文字右にシフトすると次のようになります。 eturn 0; }int main() { r ただし、このプログラムは明らかにルールに準拠していません。 ルール どんな言語でも 勝者は投票数によって決定されます 同じことを行うソリューション、またはローテーションごとにまったく異なることを行うソリューションは、100の仮想アップ投票をスコアに受け取ります。 更新これは十分長い間続いていると思います。最も多くの票(仮想票を含む)を獲得した勝者はマークバイヤーズです。よくやった!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.