タグ付けされた質問 「polyglot」

複数のプログラミング言語で実行されるコードに関連する課題。

16
ポリグロット作成のヒント
ポリグロットは、 2つの以上の異なるプログラミング言語で実行できるプログラムです。 ポリグロットを作成したり、特定のタスクのポリグロットを簡単に記述できる言語を選択したりするための一般的なヒントは何ですか? ほとんどの状況に適用できるヒントを投稿してください。つまり、2つの特定の言語の多言語でのみ機能するべきではありません。(特定のヒントが多すぎる場合は、単にポリグロットの質問への回答を投稿できます。)しかし、多くの言語での作業や既存のポリグロットへの追加を容易にする言語の機能を導入できます。 回答ごとに1つのヒントを投稿してください。また、言語固有のヒントが別の言語にも当てはまる場合は、自由に編集を提案してください。
48 tips  polyglot 

29
平方と平方根を計算します!
ある言語では入力の平方を出力し、別の言語では入力の平方根を出力するポリグロットを作成する必要があります。バイト単位の最短回答が勝ちです! 小数点以下3桁以上の精度が必要です。入力は常に正の浮動小数点数になります。

30
ポリグロットアナグラム警官のスレッド
この課題には2つのスレッドがあります。これは警官のスレッドです。強盗のスレッドはここにあります。 あなたの課題は、OEISシーケンスを選択し、STDINまたはnが正の数である他の形式の標準入力を介してnが与えられたときにシーケンスのそのn番目のアイテムを生成する2つの異なる言語で2 つの完全なプログラムを書くことです。ただし、2つのプログラムはアナグラムである必要があります。つまり、それぞれを相手の文字から並べ替えることができます。 プログラムは、数値の10進数とオプションの空白をSTDOUTに出力する必要があります。プログラムはSTDERRに出力する場合がありますが、無視する必要があり、隠されている場合はそうであると明確に述べる必要があります。 必要に応じて、文字コードで出力することもできます。ただし、非表示のソリューションでこれを行う場合は、提出の本文にその旨を記載する必要があります。 その後、OEIS番号、ソースコードとの名前発表します1つのそれはである言語を。 強盗は、既に提示した言語以外の言語で実行される元の提出のアナグラムを見つけると、提出をクラックします。彼らは唯一見つけなければならない答えクラックする任意のシーケンスを生成し、元のアナグラムである言語やプログラムを、必ずしもあなたがについて考えた答え。 したがって、シンボルのリストを使用してタスクを実行する言語を見つけるのをできるだけ難しくするように奨励されます。 得点 これはコードゴルフですので、クラックされていない最短のプログラムが勝者です。 言語 2つの提案されたソリューションが両方の言語でタスクを完了しない場合、言語は異なると見なされます。これには、警官のソリューションも強盗のソリューションも相手の言語で正しい出力を生成しない限り、同じ言語の異なるバージョンが含まれます。 すなわち、言語AとBにそれぞれ2つのソリューション1と2がある場合、ソリューション2は言語Aで正しい出力を生成してはならず、ソリューション1は言語Bで正しい出力を生成してはなりません。 安全性 提出物が1週間解読されたら、ソリューションを投稿し、投稿の安全性を宣言できます。1週間後に解決策を投稿しないことを選択した場合、答えはまだ解読されている可能性があります。

30
アイデンティティマトリックスの構築
課題は非常に簡単です。入力が整数のn場合、n x n単位行列を出力します。単位行列は、1sが左上から右下に及ぶものです。作成した単位行列を返すまたは出力するプログラムまたは関数を作成します。出力は、2D配列、またはスペース/タブと改行で区切られた数値です。 入出力の例 1: [[1]] 2: [[1, 0], [0, 1]] 3: [[1, 0, 0], [0, 1, 0], [0, 0, 1]] 4: [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]] 5: [[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, …

3
クライントポロリグロット
Kleinは私が設計した2D言語で、12の異なるトポロジサーフェスに埋め込むことができます。Kleinプログラムは、コマンドライン引数を変更することにより、異なるサーフェスで実行できます。 トポロジは、プログラムの端から出たときに命令ポインタがどこに移動するかを決定します。エッジから移動すると、IPは一致する色のエッジにジャンプし、矢印に対する位置を維持します。つまり、ポインターは矢印の頭からの距離を保持します。 たとえば000、ほとんどの2D言語で使用されるトポロジであるトポロジでは、エッジから外れると、命令ポインタが反対側に回り込みます。 仕事 タスクは非常に簡単で、実行時に実行されるトポロジを出力するKleinプログラムを記述します。個々の数字はスペースで区切ることができます。(たとえば000、0 0 0両方とも許容される出力です)。-Aコマンドラインフラグを使用するか無視するかを選択できます。コマンドラインフラグを使用しても、バイト数はかかりません。 これはコードゴルフなので、最短の答えが勝者になります。 これは、すべてのトポロジを一度にテストするために使用できるオンラインテストドライバーです。整数モードで実行するには、を削除し-Aます。

15
99本のビール、99言語
目標は、少なくとも 2つの異なる言語(Python 2およびPython 3以外)で有効な単純な「99本のビール」プログラムを作成することです。実行またはコンパイルされる完全なファイルである必要があります。 興味深い回答は投票する必要がありますが、コンパクトさも重要です。(もちろん、言語の多様性が主な目標です。) 編集:私は、C ++とObjective-Cで同じことをする通常のCコードを派生物としてカウントすると言うでしょう。コードは、行が異なる言語で異なる意味を持つように巧妙なことを行う必要があります。

15
感謝祭に何をもたらしますか?
米国での感謝祭は11月24日に行われます。多くの人々は、伝統的に七面鳥や多くの副菜を含む家族と一緒に大規模な夕食を食べます。これは通常、家族がさまざまな料理のそれぞれを持ち込む人を調整する必要があることを意味します。この課題の目標は、実行する言語ごとに異なる料理を出力するポリグロットを作成することです。 メニュー (Wikipediaから選択。明らかでない場合、各行は1つの項目です。) turkey stuffing dressing cranberry sauce mashed potatoes gravy winter squash sweet potatoes corn green beans green bean casserole mac and cheese macaroni and cheese salad rolls biscuits corn bread pumpkin pie apple pie mincemeat pie sweet potato pie pecan pie apple cider sweet tea ルール 各投稿は少なくとも3つの言語で実行する必要があり、各言語はメニューから異なるアイテムを出力する必要があります。同じ言語の複数のバージョンを使用することはできません(たとえば、Python 2とPython …

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 

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度回転することを表します。 …

13
相互馬のゴルフ
選択した2つの言語を使用して、できるだけ小さな「相互クイン」を作成します。 つまり、プログラムQの出力がPのソースコードと同じになるように、言語BのプログラムQのソースコードを出力する言語AのプログラムPを記述します。 空のファイルはカウントされず、「ソースファイルを読み取って印刷する」スタイルのプログラムもカウントしません。 編集: P = Qの回答はカウントされなくなりました。

17
重なり合うポリグロット
多くのC&Rの課題とは異なり、これには別の強盗の投稿は必要ありません。強盗の目的は、以前の回答を解読し、新しい回答を警官として投稿することです。 回答者として、次のような一連のポリグロットを作成します(各列は言語であり、各エントリはその言語での回答の出力です)。 Language: 1 2 3 4 5 6 7 8 ... Answer 1: 0 1 2 Answer 2: 1 2 3 Answer 3: 2 3 4 Answer 4: 3 4 5 Answer 5: 4 5 6 Answer 6: 5 6 7 ... (空白スペースは、その場合の動作が不要であることを意味します)。 各答えは3つの言語で動作し、前の回答で印刷番号よりもそれぞれ複数である3つの異なる連続番号印刷(最初の回答印刷をすべきである0、1と2)。各回答は、以前の提出からの2つの言語と、3番目の新しい言語を使用します。回答者は、この第三言語が何であるかを難読化しようとする必要があります。 新しい回答を投稿するには、次のことを行う必要があります。 その第三言語が何であるかを見つけることにより、最新の答えをクラックします。 できれば、亀裂の説明を追加し、回答者に通知してください。提出物がクラックされたら、できれば説明も追加してください。 この回答の2番目と3番目の言語と、選択した別の言語で構成される多言語を書きます。最初の2つの言語を公開しますが、新しい言語は公開しません。この言語(またはそれが機能する他の言語)を見つけることが次のポスターの目標となるため、難読化を試みる必要があります。 仕様書 …

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<-""] -- |] オンラインでお試しください!

5
クラスターサイズの克服
フラッシュストレージの信頼性にうんざりして、すべてのプログラムを古き良き1,440 KiBフロッピーのいずれかに保存することにしました。しかし、3,000個のプログラムさえコピーしなかった後、ディスクはいっぱいになりました。それはどうして可能でしょうか?コードゴルフの技術に精通しているため、プログラムのほとんどは100バイトの長さでさえないため、十分なスペースが残っているはずです... スーパーユーザーに問い合わせた後、ファイルシステムのクラスターサイズ、FAT12のデザイナーの邪悪なプロットに悩まされていることがわかります。これは、フロッピーのかなりの部分を未使用のままにして、実際に必要以上に購入を余儀なくさせます。 フロッピーを追加購入しますか?絶対に!複数のプログラムを1つのファイルに保存するだけであれば、クラスターサイズは問題になりません。これは、同じソースコードに対して異なるコンパイラー/インタープリターが異なる動作をするためです。 仕事 単一のクラスター(512バイト以下)に収まり、次のタスクをできるだけ多く解決するポリグロットを作成します。 ひも すべての入力を読み取り、印刷します。 Print Hello、World!。 入力として行/引数(name)を読み取り、ハッピーバースデー[name]を出力します!。 すべての入力を読んで、タブが大好きです!1つ以上のタブレータ(0x09)が含まれていて、スペースが嫌いです!そうでない場合。 2行/引数を読み取り、2番目が最初のサブストリングである場合は真実の値を出力し、そうでない場合は偽の値を出力します。 行/引数を読み取り、その文字が厳密に昇順である場合は真実の値を出力し、そうでない場合は偽の値を出力します。 行/引数および文字を読み取り、その文字のすべての出現のインデックスを出力します。 行/引数を読み取り、出現回数が最も多い文字を印刷します。 数学 間の2つの整数を読む0と255とそれらの合計を印刷します。 0から255までの単一の整数を読み取り、その除算の商と剰余を7で出力します。 1から255までの単一の整数を読み取り、それが合成数(1でも素数でもない)である場合は真理値を出力し、そうでない場合は偽値を出力します。 1から255までの単一の整数を読み取り、それが2のべき乗である場合は真理値を出力し、そうでない場合は偽値を出力します。 間の2つの整数を読む0と255と大きな1つを出力します。 間進整数読み取る0と255を 16進表現を印刷します。 間の単一の整数を読む0と255とのハミング重み(1ビットの数)を印刷します。 単一の整数を読み取るNとの間の1と13と印刷FをN、N 番目の フィボナッチ数。 たとえば、入力の13場合、print 233。 アスキーアート 入力の行/引数を読み取り、フレーム化します。 たとえば、inputのProgramming Puzzles & Code Golf場合、次を印刷します。 +---------------------------------+ | Programming Puzzles & Code Golf | +---------------------------------+ 文字の長方形ブロックを読み取り、時計回りに4分の1回転させます。 たとえば、入力用 tye xll …

20
ポリキンを書く
ポリキンは、クインとポリグロットの両方です。1少なくとも2つの異なる言語で有効なクインを書きます。これはコードゴルフなので、最短の回答(バイト単位)が勝ちです。 1それを作りました。むしろ、ジオビットはそうしました。どうやら、彼も最初のものではなかったようです。 クインのルール 真のクインのみが受け入れられます。つまり、あなたは、STDOUTに逐語的に全体のソースコードを印刷する必要がなくて: ソースコードを直接または間接的に読み取る。 REPL環境に依存します。REPL環境は、フィードするすべての式を単に評価および出力するだけです。 特定の場合にソースを出力するだけの言語機能に依存しています。 エラーメッセージまたはSTDERRを使用して、クインのすべてまたは一部を書き込みます。(STDOUTが有効なクインであり、エラーメッセージがその一部でない限り、STDERRに書き込むか、警告/致命的でないエラーを生成できます。) さらに、コードには文字列リテラルが含まれている必要があります。 ポリグロットのルール 使用される2つの言語は明確に異なる必要があります。特に: 同じ言語の異なるバージョンであってはなりません(Python 2とPython 3など)。 それらは同じ言語の異なる方言であってはなりません(例:PascalとDelphi)。 1つの言語は、他の言語のサブセットではない場合があります(例:CとC ++)。

7
3つのポリグロット、2つのピリオド2クイン、および1つのコードゴルフチャレンジ
言語Aで実行するとプログラムBが生成され、言語BでプログラムAを実行するとプログラムCが生成されるように、プログラムAを生成します。 プログラムB、言語Bで実行するとプログラムAが生成され、プログラムBを言語Aで実行するとプログラムCが生成されます。 プログラムCを言語Aまたは言語Bで実行すると、「間違った言語!」が出力されます。 Program | Language | Result --------|----------|---------- A | A | Program B B | B | Program A A | B | Program C B | A | Program C C | A | "Wrong language!" C | B | "Wrong language!" 答えは次のテンプレートを使用する必要があります。 言語A /言語B、{aバイト} + {bバイト} …

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