タグ付けされた質問 「code-challenge」

コードチャレンジは、他のスコアリングタグ(コードゴルフなど)ではカバーされない客観的な勝ち基準でプログラミングパズルを解くクリエイティブな方法の競争です。

22
Natural Pi#0-ロック
ゴール 入力を受け取るプログラム/関数を作成し、整数のランダムなペアが比較的素数であるNかどうかを確認しN、を返しますsqrt(6 * N / #coprime)。 TL; DR これらの課題は、Piを概算するために自然と脳(およびおそらく再利用可能なリソース)のみを必要とするアルゴリズムのシミュレーションです。ゾンビの黙示録中に本当にPiが必要な場合、これらの方法は弾薬を無駄にしません!さらに8つの課題があります。推奨事項を作成するには、サンドボックスの投稿をチェックしてください。 シミュレーション 何をシミュレートしていますか?さて、2つのランダムな整数が比較的素数(すなわち、コプライムまたはgcd == 1)である確率は6/Pi/Piです。それらを数える; gcdが1 かどうかを確認します。繰り返す。これを数回繰り返した後、sqrt(6.0 * total / num_coprimes)に向かう傾向がありPiます。黙示録的な世界で平方根を計算するのが不安になっても心配しないでください!そのためのニュートン法があります。 これをどのようにシミュレートしますか? 入力してください N 次のN時間を実行します。 ランダムな正の整数を均一に生成しi、j と 1 <= i , j <= 10^6 もしgcd(i , j) == 1:result = 1 その他: result = 0 N結果の合計を取り、S 戻る sqrt(6 * N / S) …
39 code-golf  math  random  pi  approximation  popularity-contest  code-golf  sequence  number-theory  binary  coding-theory  code-golf  math  3d  code-golf  code-golf  math  number  code-golf  kolmogorov-complexity  code-golf  ascii-art  graphical-output  binary-tree  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation  hexadecimal  code-golf  math  number  set-theory  code-golf  math  arithmetic  number-theory  integer  code-golf  string  kolmogorov-complexity  code-golf  math  sequence  arithmetic  decision-problem  code-golf  code-golf  ascii-art  code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

15
空を見上げて!それは超大型アレイです!
Code Reviewでライバルの友人から寄せられたこの質問に触発されました。 定義 スーパーアレイは、アレイ内の各新しい要素は、以前のすべての要素の合計よりも大きい配列です。{2, 3, 6, 13}スーパーアレイです 3 > 2 6 > 3 + 2 (5) 13 > 6 + 3 + 2 (11) {2, 3, 5, 11}なぜならスーパーアレイではないからです 3 > 2 5 == 3 + 2 11 > 5 + 3 + 2 大型のアレイは、アレイ内の各新しい要素は、以前のすべての要素の積よりも大きい配列です。{2, 3, 7, 43, 1856}はスーパー配列ですが、それはまた、より大きな配列です 3 > …

3
放射線硬化クイン
(願わくば)知っておくべきことですが、耐放射線強化されたクインは、任意の1文字を削除して、元の修正済みソースを印刷できるクインです。重要なのは、これらのほとんどでは、1文字しか削除できないということです。そうしないと、すべてが故障します。これは、これが来るところです。あなたの目標は、できるだけ多くのキャラクターの除去を行うことができる耐放射線性のクインを構築することです。ルールに準拠する言語であれば問題ありません。 ルール プログラムは少なくとも1文字の長さが必要です 使用する言語は完全にチューリングする必要があります(したがって、HQ9 +などの言語は対象外です) 通常のクインに適用される他のすべてのルールもここに適用されます。 少なくとも有する溶液program_length^(2/n)れる任意正確セットn依然として元のソースコードWINSを印刷中の文字を除去することができます。

29
課題に近いコード:整数の合計
これは簡単な課題です。整数のシーケンスが与えられたら、その中のすべての整数の合計を見つけます。 しかし、ひねりを加えて。スコアは、コードと次のフレーズ(チャレンジ)の間のレーベンシュタイン距離です。 整数のセットが与えられたら、その中のすべての整数の合計を見つけます。 入力に改行や末尾のスペースがないと仮定できます。 入出力の例: Input: 1 5 -6 2 4 5 Output: 11 Input: 1 -2 10 Output: 9 レーベンシュタイン距離のオンライン計算機は、http://planetcalc.com/1721/で見つけることができます

5
正規表現で番号を追加する
新しいタイプの正規表現ゴルフチャレンジを試してみたいと思います。これは、正規表現の置換だけで、自明ではない計算タスクを解決するように求めます。これを可能にし、面倒な作業を少なくするために、次々にいくつかの置換を適用できます。 チャレンジ 簡単に始めましょう。2つの正の整数を含む文字列を、a ,で区切られた10進数として指定すると、合計も10進数としても含む文字列が生成されます。だから、非常に簡単に 47,987 になるはずです 1034 あなたの答えは、任意の正の整数に対して機能するはずです。 フォーマット すべての答えは置換ステップのシーケンスである必要があり、各ステップは正規表現と置換文字列で構成されます。オプションで、シーケンス内のこれらの各ステップについて、ストリングの変更が停止するまで置換を繰り返すことを選択できます。以下に送信例を示します(上記の問題は解決しません)。 Regex Modifiers Replacement Repeat? \b(\d) g |$1 No |\d <none> 1| Yes \D g <empty> No inputが与えられると123,456、このサブミッションは入力を次のように処理します。最初の置換が1回適用され、次のようになります。 |123,|456 これで、ストリングの変更が停止するまで、2番目の置換がループで適用されます。 1|23,|456 11|3,|456 111|,|456 111|,1|56 111|,11|6 111|,111| 最後に、3番目の置換が1回適用されます。 111111 ループの終了基準は、正規表現が一致を検出したかどうかではなく、文字列が変更されたかどうかであることに注意してください。(つまり、一致するものが見つかっても置換が一致する場合にも終了する可能性があります。) 得点 プライマリスコアは、提出の代替ステップの数になります。置換が繰り返されるたびに、10ステップがカウントされます。したがって、上記の例ではスコアが付けられ1 + 10 + 1 = 12ます。 タイの(あまりありそうにない)ケースでは、2次スコアはすべてのステップのサイズの合計です。各ステップで、正規表現(区切り文字なし)、修飾子、置換文字列を追加します。上記の例では、これはになります(6 + 1 + …

14
散発的なShiftキーを使用したプログラミング
キーボードに何か問題があります。Shiftキーは、独自の心を持っています。文字を入力するたびに、それがシフトして出てくるかどうかはわかりません(ただし、50〜50です)。標準の文字キーに加えて、キーボード上の何も機能していません。マウスなどの入力手段はありません。 どういうわけか、物事を修正する唯一の方法を知っているのは、Dear Computer, please stop giving me shift!stdoutに出力するプログラムを書くことです。幸い、IDEは開いていてプログラムを実行できますが、もちろん、入力するときにどの文字がシフトされるかはわかりません。 最初の試行で作業する可能性が最も高いプログラムを作成するために、どのキーシーケンスを使用しますか? 詳細 標準のQWERTYキーボードを使用しているため、50文字のキーを押すことができます。 シフトされていないバージョン(47のみ): `1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./ シフトバージョン(47のみ): ~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>? 最後の3つのキーがありEnter、TabとSpaceシフトし、シフトされていない同じです。 これらの文字のNのシーケンスは、2 N-(空白文字カウント)の方法で、誤ったキーボードで入力した場合に出力される可能性があります。たとえば、タイピングA Space mにより a mor A mまたはa Morが生成される場合がありA Mます。 これらの文字をプログラムに記述し、その2 N-(空白文字数)の可能なシフトの組み合わせをすべて調べます。組み合わせが多いほど出力Dear Computer, please stop giving me shift!が良くなります。スコアは、有効な組み合わせ(有効なプログラム)の数を組み合わせの総数で割ったものです。最高のスコアが勝ちます。 ノート 有効なプログラムの場合、正確に印刷Dear Computer, please stop giving me shift!し、stdout以外に何も印刷しないことが唯一の副作用です。 有効なプログラムは入力を受け付けません。 無効なプログラムは何でもできます。 コメントはどこでも使用できます。 100%のスコアを得ることは(比較的)些細なことなので、ホワイトスペースの回答は勝つことができません。あなたはまだ楽しみのためにホワイトスペースソリューションを提出することができます。 プログラムの長さは最大1024文字でなければなりません。 更新:より複雑な回答ができるように変更Stop giving me …

6
Vectoryへ!–ベクターレーシンググランプリ
ユーザーCarpetPython がこの問題に関する新しい見解を投稿しました。検索スペースが増加したため、ヒューリスティックなソリューションにより大きな焦点を当てています。個人的には、この挑戦​​は私の挑戦よりもずっといいと思うので、試してみてください! ベクトルレースは、ペンと四角い紙で遊ぶことができる中毒性のゲームです。紙の上に任意の競馬場を描き、開始と終了を定義してから、ターンベースの方法でポイントサイズの車を操縦します。できるだけ早く終わらせますが、壁につかないように注意してください! トラック マップは2次元のグリッドで、各セルには整数座標があります。 グリッドセル上を移動します。 各グリッドセルは、トラックの一部であるか、壁です。 正確に1つのトラックセルが開始座標です。 少なくとも1つのトラックセルが目標として指定されています。これらのいずれかに着陸すると、レースが完了します。複数の目標セルが接続されているとは限りません。 車の操縦 あなたの車は与えられた座標から速度ベクトルで始まり(0, 0)ます。各ターンで、ベロシティの各コンポーネントを調整する±1か、そのままにすることができます。次に、結果の速度ベクトルが車の位置に追加されます。 写真が役立つ場合があります!赤い丸はあなたの最後のターンの位置でした。青い円は現在の位置です。速度は、赤から青の円へのベクトルです。このターンでは、速度の調整方法に応じて、緑色の円のいずれかに移動できます。 あなたがいる場合土地の壁に、あなたはすぐに失います。 あなたのタスク あなたはそれを推測しました:入力として競馬場を与えられたプログラムを書いて、できるだけ少ないターンでゴールセルの1つに車を操縦します。ソリューションは、任意のトラックを適切に処理でき、提供されたテストケースに対して特に最適化されていない必要があります。 入力 プログラムが呼び出されたら、stdinから読み取ります。 target n m [ASCII representation of an n x m racetrack] time targetは、トラックを完了するために取ることができる最大ターン数であり、トラックのtime合計時間予算(秒単位)(必ずしも整数ではない)です。タイミングの詳細については、以下を参照してください。 改行区切りのトラックには、次の文字が使用されます。 # –壁 S- スタート *- 目標 . –他のすべてのトラックセル(道路) n x m提供されたグリッドの外側のすべてのセルは、壁であると暗示されています。 座標原点は左上隅にあります。 以下に簡単な例を示します。 8 4.0 9 6 ###...*** …

8
ハンプスを狩る
私が若者だったとき、子供たちはコンピュータ店に迷い込んで、スタッフが私たちを追い出すまでハンプ・ザ・ワンプスをプレイしました。シンプルなゲームで、1970年代半ばの家庭用コンピューターでプログラム可能で、非常に初歩的なもので、ひよこサイズのマイクロプロセッサーではなく、おそらく実際のひよこが入っていたと思います。 ゲームを最新のハードウェアで再現することで、その過ぎ去った時代を呼び起こしましょう。 プレイヤーは、二十面体マップ上のランダムな部屋で開始します(したがって、合計20の部屋があり、20面体の顔のように互いに接続されており、各部屋には正確に3つの出口があります)。 しこりは、ランダムに選択された別の部屋で始まります。しびれが悪臭を放ち、その臭いはその場所に隣接する3つの部屋のいずれかで検出できますが、臭いの方向はプレイヤーが判断することはできません。このゲームでは、「おかしな匂いがする」としか報告されません。 プレイヤーは弓と無数の矢を持ち、いつでも自分の前の部屋に撃つことができます。しわがその部屋にある場合、それは死に、プレイヤーが勝ちます。Wumpusがその部屋になかった場合、驚いたことになり、現在の場所に接続されている3つの部屋のいずれかにランダムに移動します。 ランダムに選択された1つの部屋(プレーヤーが開始する部屋ではないことを保証)には、底なしの穴があります。プレイヤーがピットに隣接する部屋にいる場合、彼はそよ風を感じますが、そよ風がどのドアから来たのかはわかりません。彼が穴のある部屋に入ると、彼は死に、wumpusが勝ちます。くぼみはピットの影響を受けません。 プレイヤーが突風の部屋に足を踏み入れた場合、または突進がプレイヤーの部屋に足を踏み入れた場合、突風が勝ちます。 プレイヤーは自分が向いている方向を数字で指定し(1 =右、2 =左、3 =戻る)、次にアクション(4 =矢を放つ、5 =指定した方向に歩く)を指定します。 スコアリングのために、各ゲーム文字列(「風を感じます」、「こぶを嗅ぐ」、「あなたの矢は何もヒットしませんでした」など)を1バイトと見なすことができます。テキスト内のゲームコードを隠すためにこれを悪用しないでください。これは、プレーヤーと対話するためだけのものです。 メガバットを実装するために、バイトカウントの10%を差し引きます。メガバットは、プレーヤーとは異なるランダムな部屋から始まります(ただし、部屋はwumpusやピットと共有できます)。プレイヤーがコウモリと一緒に部屋に入った場合、コウモリはプレイヤーを別のランダムに選択された部屋に移動させます(ピットまたはその中にあるくぼみのある部屋ではないことを保証します)。コウモリに隣接する3つの部屋では、きしむ音を聞くことができますが、プレーヤーにはどの部屋から音が聞こえるかについての情報は与えられません。 二十面体マップと、プレイヤーがこれまでに持っているピット、ウンプス、コウモリ(該当する場合)の位置に関する情報の表示を表示するグラフィカルインターフェイスを実装するために、バイトカウントの35%を差し引きますプレーヤー。明らかに、しこりが動くか、プレイヤーがコウモリに動かされた場合、マップはそれに応じてリセットする必要があります。 調整された最低バイト数が優先されます。 ゲームのバージョンのBASICソースコード(上記のルールに必ずしも準拠しておらず、いずれにしても完全に無制限)は、このWebサイトおよびおそらく他のWebサイトで見つけることができます。

16
最小のチェスボード圧縮
チェス盤をエンコードおよびデコードできるアルゴリズムまたはプログラムを作成します。目標は、そのターンでのプレーヤーのすべての動きの可能性を判断するために使用できる(一度デコードされた)チェス盤の最小の表現を作成することです。 エンコードは以下を表示できる必要があります。 誰の番です。 プレイヤーが両サイドでキャッスルできるかどうか。 プレイヤーが同乗者を演じることができるかどうか、もしそうなら、どのポーンですか? すべてのピースの位置。 キャスリングに関する重要な注意事項:白が王を1ターン動かし、次に次の王を戻す場合、その後、どちらの側でもキャッスルできないことは明らかでなければなりません。彼らが左または右のルークを動かした場合も同様です。ボードは視覚的には2ターン前と同じ状態ですが、ゲームの状態は変化しています。詳細はこちら:http : //en.wikipedia.org/wiki/Chess#Castling en-passantについての重要な注意:これはターンセンシティブな動きでもあります。詳細については、ルールをご覧ください。http://en.wikipedia.org/wiki/Chess#En_passant 必要に応じて入力と出力を決定します。それを最も圧縮できる人への主要な小道具! あなたのスコアは最悪のシナリオで決定されます-ビットの最大可能サイズ。その数をどのように計算したか、何を計上したかを必ず示してください。最小の最悪の場合を撃ちます!

26
二乗言葉を作る
チャレンジ あなたの仕事は、与えられた文字列入力を取り、二乗形式で入力を出力するプログラムを作成することです。空の文字列は空の文字列を返す必要があります。 例 入力が与えられた場合: golf プログラムは以下を出力するはずです。 golf o l l o flog 入力: 123 出力: 123 2 2 321 入力: a 出力: a 入力: Hello, world! 出力(との間のスペースに注意してください-w-ギャップは単なる改行ではありません): Hello, world! e d l l l r o o , w w , o o r l l l d e !dlrow …

9
遅いエラーのクインメーカーを作ろう!
Make a Error Quine!への彼の答えの一部として!、@ Falkoは次のアルゴリズムを提案しました。 2分で独自のソリューションを作成する方法は? 選択したIDEで新しいファイルを開きます。 目の前のキーボードに頭を叩きます。 コンパイル。 コードをコンパイラエラーメッセージに置き換えます。 コードが収束するまで、手順3と4を繰り返します。 ほとんどの場合、そのような手順はかなり早く終了するに違いありません! 仕事 あなたの仕事は彼が間違っていることを証明することです。 以下を満たす完全なプログラムを作成します。 コンパイルまたは解釈されると、エラーメッセージが生成され、コンパイルまたは解釈されると、エラーメッセージも生成されます。 手順1を何度も繰り返すと、最終的に不動点、つまりエラークインが発生します。 追加のルール 最終エラーメッセージの長さは正でなければなりません。ただし、以前のエラーメッセージと元のソースコードは空の場合があります。 元のソースコードの長さは1024バイトを超えることはできません。 元のコードも、いずれかの手順で生成されたコードも、エラー以外の出力を生成することはありません。 出力はエラーメッセージとして明確に識別可能でなければならず、構文エラー、ランタイムエラー、未定義の参照などのためにコンパイラ/インタプリタによって生成される必要があります。 プログラムは、ループを生成するために入力を受け取ったり、フラグを必要としない場合があります。 プログラムは、言語またはそのバージョンの特定の実装に依存する場合があります。 得点 スコアは、ソースコードでエラークインを生成する前に必要なステップの有限数です。最高スコアの提出が勝ちです。 元のソースコードの長さがタイブレーカーとして使用されます。短いほど良い。 例 ではチキン、プログラム 次のエラーメッセージを生成します。 TypeError: Cannot read property 'NaN' of undefined このエラーメッセージが次に解釈されると、エラーメッセージが生成されます。 Error on line 1: expected 'chicken' 順番に解釈すると、それ自体が生成されます。 したがって、空のチキンプログラムのスコアは2です。 反例 PHPコード ab<?=c エラーメッセージを生成します …

3
ルービックキューブを解く
ルービックキューブ(3 * 3 * 3)を妥当な時間内に解決する最短のプログラムを作成し、移動します(たとえば、マシン上で最大5秒、1000回未満の移動)。 入力の形式は次のとおりです。 UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR (この特定の入力は、解決されたキューブを表します)。 最初の12個の2文字の文字列は、UF、UR、... BL位置のエッジ(U =上、F =前、R =右、B =後、L =左、D =下)であり、次の8 3文字の文字列は、UFR、URB、... DBR位置のコーナーです。 出力は、次の形式で一連の動きを示します。 D+ L2 U+ F+ D+ L+ D+ F+ U- F+ D1またはD +はD(下)面を時計回りに90度回転することを表し、L2はL面を180度回転し、U3またはU-はU面を反時計回りに90度回転することを表します。 …

27
警官:隠されたOEISサブストリング
これは警官と強盗の挑戦です。これは警官のスレッドです。強盗のスレッドはこちら。 警官として、OEISから任意のシーケンスを選択し、そのシーケンスの最初の整数を出力するプログラムpを作成する必要があります。いくつかの文字列sも見つける必要があります。sをp のどこかに挿入する場合、このプログラムはシーケンスの2番目の整数を出力する必要があります。s + sをpの同じ場所に挿入する場合、このプログラムはシーケンスの3番目の整数を出力する必要があります。同じ場所にあるs + s + sは4番目を印刷し、以下同様に続きます。以下に例を示します。 Python 3、シーケンスA000027 print(1) 隠し文字列は2バイトです。 文字列は+1、プログラムprint(1+1)がA000027の2番目の整数を印刷するため、プログラムがprint(1+1+1)3番目の整数を印刷するためなどです。 警官は、シーケンス、元のプログラムp、および非表示の文字列sの長さを明らかにする必要があります。強盗は、その長さまでの文字列と、それを挿入してシーケンスを作成する場所を見つけることにより、提出物を解読します。文字列は、有効なクラックであるために意図したソリューションと一致する必要はなく、挿入される場所も一致する必要はありません。 ルール ソリューションは、シーケンス内の任意の数、または少なくともメモリ制限、整数/スタックオーバーフローなどが失敗する合理的な制限まで動作する必要があります。 勝者の強盗は、最も多くの提出物をクラックするユーザーであり、タイブレーカーはその数のクラックに最初に到達します。 勝利した警官は、割れていない最短の文字列の警官です。Tiebreakerは最短のpです。ひびのない提出物がない場合、解決策を持っていた警官が最も長い間勝ちました。 安全であると宣言するには、ソリューションを1週間ひび割れさせずに、非表示の文字列(および挿入する場所)を公開する必要があります。 sはネストできません。エンドツーエンドで連結する必要があります。たとえば、sがいた10、各反復は行くだろう10, 1010, 101010, 10101010...ではなく、10, 1100, 111000, 11110000... シーケンスの最初の用語ではなく、2番目の用語で開始することもできます。 シーケンスに有限数の用語がある場合、最後の用語を超えると、未定義の動作が発生する可能性があります。 すべての暗号化ソリューション(たとえば、部分文字列のハッシュのチェック)は禁止されています。 sに非ASCII文字が含まれている場合は、使用するエンコードも指定する必要があります。

30
ジャバウォックを殺したのは?
あなたの仕事は正確な文字列を出力することです The Jabberwocky 入力なし。入力と出力の通常の規則が適用されるため、関数とプログラムの両方が許可されます。 もちろん、キャッチがあります。キャッチなしでは楽しいことではありません。プログラムは、アルファベット以外の文字を取り除いたときに、The Jabberwocky(大文字と小文字を区別しない)の詩を開始する必要があります。詩を開始するには、最初から始まる連続した部分文字列である必要があります。空の文字列は問題ありません(ただし、スコアはあまり高くないでしょう)。 参照用のテキストは次のとおりです。 twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebewarethejabberwockmysonthejawsthatbitetheclawsthatcatchbewarethejubjubbirdandshunthefrumiousbandersnatchhetookhisvorpalswordinhandlongtimethemanxomefoehesoughtsorestedhebythetumtumtreeandstoodawhileinthoughtandasinuffishthoughthestoodthejabberwockwitheyesofflamecamewhifflingthroughthetulgeywoodandburbledasitcameonetwoonetwoandthroughandthroughthevorpalbladewentsnickersnackheleftitdeadandwithitsheadhewentgalumphingbackandhastthouslainthejabberwockcometomyarmsmybeamishboyofrabjousdaycalloohcallayhechortledinhisjoytwasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabe このプロパティをテストするために使用できるプログラムを次に示します。 使用する詩がなくなった場合、追加のアルファベット文字を使用することはできません。 アルファベット文字は文字ですa- zそしてA- Zここに完全なリストがあります: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 得点 プログラムは、使用されているアルファベット以外のバイト数でスコアが付けられ、少ないほうが良い結果になります。 以下に回答を記録するHaskellプログラムを示します。(これは入力が有効であることを前提としています) サンプルプログラム 次のプログラムは有効です。 twas&*brilliga77812nd Thesli thyt Oves didgy reand Gim bleinth ewab eal lmims ywe"""""""" ret h eb or o g o ve sa n dthemomerAthsoutgrabebewaretheJABBERWOCKmysonthe)(*)()((*98980908(()*(jawsthatbit アルファベット文字に削除すると、次のようになります。 twasbrilligandTheslithytOvesdidgyreandGimbleinthewabeallmimsyweretheb orogovesandthemomerAthsoutgrabebewaretheJABBERWOCKmysonthejawsthatbit 詩の最初のビットと一致します(大文字と小文字は区別されません)。 このプログラムには、これらの非アルファベット文字が含まれているため、59のスコアが付けられます。 &*77812 """""""" )(*)()((*98980908(()*(

30
待って、これは何の言語?
最近、NegativeLiterals拡張機能が使用されているかどうかを検出できるHaskellプログラムを作成することができました。私は次のことを思いつきました: data B=B{u::Integer} instance Num B where{fromInteger=B;negate _=B 1} main=print$1==u(-1) オンラインでお試しください! これはTrue正常に印刷され、Falseます。 今、私はこれをするのがとても楽しかったです。私はあなた全員に挑戦を広げています。他にどのHaskell言語拡張機能をクラックできますか? ルール 特定の言語拡張をクラックするには、言語拡張ありとなしの両方でコンパイルし(警告は問題ありません)、言語拡張を使用して実行したときに2つの異なる非エラー値を出力するHaskellプログラムを作成する必要があります(Noプレフィックスを追加することにより)言語拡張機能)。このようにして、上記のコードを次のように短縮できます。 data B=B{u::Integer} instance Num B where{fromInteger=B;negate _=B 1} main=print$u(-1) 印刷し1、-1ます。 拡張機能をクラックするために使用する方法は、その拡張機能に固有のものでなければなりません。コンパイラフラグまたはLanguageExtensionsが有効になっている場合、そのようなメソッドが許可されていない場合、任意に検出する方法があります。追加の言語拡張を有効にするか、次を使用してコンパイラの最適化を変更できます。-O、バイトカウントを無料でしできます。 言語拡張 あなたは持っていない任意の言語拡張割れることができないNo相手方(例えばHaskell98、Haskell2010、Unsafe、Trustworthy、Safeこれらは、上で概説条項に該当しないために)。他の言語拡張機能はすべて公平なゲームです。 得点 あなたが最初にクラックする言語拡張機能ごとに1ポイント、最短(バイト単位で)クラックするすべての言語拡張機能に1ポイント追加されます。2番目の点については、以前の提出を支持して関係が破られるでしょう。スコアが高いほど良い 最初の投稿でポイントを獲得することはできません。NegativeLiteralsまたはQuasiQuotes、既にそれらをクラックして投稿の本文に含めているためです。ただし、これらのそれぞれの最短クラックのポイントを獲得できます。ここに私の亀裂がありますQuasiQuotes import Text.Heredoc main=print[here|here<-""] -- |] オンラインでお試しください!

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