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

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

7
IPv4アドレスの欠落している期間を修正する
IPv4アドレスを入力するときに、すべての数字を正しく入力することもありますが、1つ以上のピリオドを入力するのを忘れています。壊れたIPv4アドレスを取得し、欠落しているピリオドのすべての有効な配置を出力するプログラム(または機能)が必要です。 入力 入力は常に、有効なIPv4アドレスの変換である文字列になります(以下の詳細を参照)。常に1つ以上のピリオド文字を削除するだけで変換されます。 送信する際に、この形式以外の入力を処理する必要はありません。 出力 ピリオド文字を入力に挿入することで入力から作成できるすべての有効なIPv4アドレスを表す文字列のコレクションまたはリスト。特定の順序や形式はありません。 出力は、言語固有のリスト、またはその他の順序付けされたまたは順序付けされていないコレクションタイプです。 または、何らかの明確な方法で区切られたIPv4アドレスの文字列シーケンスである場合もあります。 1文字の区切り文字を使用して文字列を区切る場合、その1文字の区切り文字としてピリオドと数字は使用できません。数字とは異なり、区切り文字としてのピリオドはあいまいではありません(4番目ごとにピリオドが必ず区切り文字になるため)が、読みやすくするために、これを禁止しています。 IPv4アドレス形式 IPv4アドレスは実際には4つのバイナリオクテットのシーケンスにすぎませんが、このチャレンジでは制限付きドット付き10進形式を使用します。 IPv4アドレスは、3つのピリオドで区切られた4つの10進数値です。 4つの値はそれぞれ、0からまでの範囲に255あります。 数値の先頭にゼロを使用することはできません。(スタンドアロン一文字が0許可され、ゼロから始まる任意の他の数ではない:052、00、等) テストケース 入力は1行目に、出力は2行目にあります(ここでは、引用符で囲まれたコンマ区切りのリストとして構成され、コンマで区切られ、で囲まれて[ ]いますが、上記のように、適切な形式または構造を使用できます)。一部の例では、特定のルールの適用を強調するために3行目に注記があります。 192.168.1234 ["192.168.1.234", "192.168.12.34", "192.168.123.4"] 192.1681234 ["192.16.81.234", "192.168.1.234", "192.168.12.34", "192.168.123.4"] (Note: 192.1681.2.34 (etc.) is illegal because 1681 is greater than 255) 1921681.234 ["19.216.81.234", "192.16.81.234", "192.168.1.234"] 1921681234 ["19.216.81.234", "192.16.81.234", "192.168.1.234", "192.168.12.34", "192.168.123.4"] 192.168.1204 ["192.168.1.204", "192.168.120.4"] …

1
私のパスタソースは何ですか?
バックグラウンド フランスでは、おそらく欧州連合の残りの部分では、販売のために利用可能な任意の食品はしなければならないで、そのパッケージに、それを構成する成分をリスト重量パーセントの降順。ただし、以下の場合を除き、正確な割合を示す必要はありません。カバーのテキストまたは画像で成分が強調表示されてい。 たとえば、パッケージに大きな赤いトマトと美しいバジルの葉だけが表示されている私のバジルトマトソースには、次の表示があります。 原材料:トマト80%、玉ねぎ、バジル1.4%、海塩、つぶしたニンニク、生の砂糖、エキストラバージンオリーブオイル、黒胡pepper。 食いしん坊に聞こえるかもしれませんが… どのくらいの玉ねぎを食べますか正確ますか? チャレンジ 最終的に不完全な降順の重量パーセントのリストが与えられた場合、レシピで見つかる可能性のある最小および最大重量パーセントの完全なリストを出力します。 関数または完全なプログラムのいずれかを作成できます。 入力は任意の合理的な形態(例えば、数値や文字列のリストの配列)であってもよいです。小数値は、少なくとも小数点以下1桁までサポートする必要があります。重量パーセントの欠落は、一貫性のある明確な方法(0、'?'またはnullなど)で表すことができます。あなたは、入力が常に有効なレシピに関連する(されると仮定することができます[70]し、[∅, ∅, 50]例えば、無効です)。 出力は、(例えば、最小及び最大の重量百分率の両方のための1つのアレイ、又は二重の単一のリスト)は、任意の合理的な形態であり得ます。最小と最大のパーセントは、任意の順序であっても(ことができる[min, max]と[max, min]の両方許容可能です)。正確な重量の割合は、他の割合とは異なる方法で処理する必要はなく、等しい最小値と最大値で表すことができます。 コードゴルフの標準ルール適用されます。コードを入力している間、私のパスタ皿は冷めているので、最短の提出が勝ちます。 例 この問題は一見しただけでは難しいため、ここではいくつかのケースの段階的な解決策を示します。 [40, ∅, ∅] それぞれxとy2つの不足している割合を呼び出しましょう。 最初の成分の後に40%であるxため、40%を超えることはできません。 [40, [?, 40], [?, ?]] 2つの欠落している割合の合計は常に60%です。その結果: 最大値をx取る場合、最小値を取るため、60%-40%= 20%になります。 y[40, [?, 40], [20, ?]] 最小値をx取る場合、最大値を取ります。しかし、より低くすることはできませんyxy、この場合、x= y= 60%/ 2 = 30%です。 [40, [30, 40], [20, 30]] [70, ∅, ∅, …
37 code-golf  math 

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文字が含まれている場合は、使用するエンコードも指定する必要があります。

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
安野ゲームのすべての可能なタイトルを一覧表示する
では安野ビデオゲームシリーズ彼らのタイトルが常に特定のパターンで今年特色早い2019年のために発表された第七1と6つのゲームがあります。 Anno 1602, Anno 1503, Anno 1701, Anno 1404, Anno 2070, Anno 2205, Anno 1800 デジタル合計は常に9です。 年は4桁の長さです。 少なくとも1つのゼロが含まれています。 これらの制約内には、109の可能なタイトルが存在します。 [1008,1017,1026,1035,1044,1053,1062,1071,1080,1107,1170,1206,1260,1305,1350,1404,1440,1503,1530,1602,1620,1701,1710,1800,2007,2016,2025,2034,2043,2052,2061,2070,2106,2160,2205,2250,2304,2340,2403,2430,2502,2520,2601,2610,2700,3006,3015,3024,3033,3042,3051,3060,3105,3150,3204,3240,3303,3330,3402,3420,3501,3510,3600,4005,4014,4023,4032,4041,4050,4104,4140,4203,4230,4302,4320,4401,4410,4500,5004,5013,5022,5031,5040,5103,5130,5202,5220,5301,5310,5400,6003,6012,6021,6030,6102,6120,6201,6210,6300,7002,7011,7020,7101,7110,7200,8001,8010,8100,9000] あなたの目的は、それらをすべて最小のバイト数で適切な形式でリストすることです。

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
26人の最も裕福な億万長者は、最も貧しい38億人と同じくらいの富を所有していますか?
前書き: 数日前、HNQで出会ったときに同じタイトルでこの投稿を読みました。この質問では、大統領候補のバーニー・サンダースが次のように主張しているという主張が議論されています。 今日、世界で最も裕福な26人の億万長者、26人は、世界人口の半分である地球上で最も貧しい38億人と同じくらいの富を所有しています。 ビデオへのリンク 真実かどうか。質問とその質問への回答とディスカッションをご覧ください。 この主張に基づく実際の課題に関しては: チャレンジ: 2つの入力:降順で並べ替えられた数値リストLLLと数値nnn(は)。出力:合計が≤リストLの最初のn個の値の合計である、Lの可能な最長のサフィックスサブリスト。nnn1 ≤ N < の長さ L1≤n<length of L1\leq n\lt \text{length of }L LLL≤≤\leqnnnLLL 例: 入力:LLL = [500,200,150,150,125,100,75,75,55,50,40,30,30,20,10,10,8,5,5,5,3,2,2,1,0,-2,-3]及びn = 2n=2n=2。 出力:[125,100,75,75,55,50,40,30,30,20,10,10,8,5,5,5,3,2,2,1,0,-2,-3] どうして? リストL()の最初のn = 2n=2n=2値は合計します。残りの数字のすべての接尾辞とその合計をとると:LLL[500,200]700 Suffix: Sum: [-3] -3 [-2,-3] -5 [0,-2,-3] -5 [1,0,-2,-3] -4 [2,1,0,-2,-3] -2 [2,2,1,0,-2,-3] 0 [3,2,2,1,0,-2,-3] 3 [5,3,2,2,1,0,-2,-3] 8 [5,5,3,2,2,1,0,-2,-3] …

30
コルモゴロフシフター
以下に示すとおりに、次の3行のテキストを出力または表示します。末尾の改行が受け入れられます。 bC#eF&hI)kL,nO/qR2tU5wX8z A!cD$fG'iJ*lM-oP0rS3uV6xY9 aB"dE%gH(jK+mN.pQ1sT4vW7yZ このテキストブロックは下のブロックと同じですが、n番目の列がn回下に回転します。 !"#$%&'()*+,-./0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz これはkolmogorov-complexityの課題であるため、出力形式には柔軟性がないことに注意してください。

5
間に合いますか?
これに触発された。 バックグラウンド 悪の農家が価格を押し上げるために、あなたの小麦畑を焼失することを決定しました。完全に破壊するために、彼はあなたの畑をガソリンに浸しました。さらに不幸なことに、あなたはたまたま畑に火がついたときに歩いていたので、生き残るためには素早く出なければなりません。 チャレンジ 小麦、火、およびあなたの場所を含む畑が与えられたら、時間内に畑から出せるかどうかを判断します。 畑は小麦(ここでは.)と火(F)で構成されています。ここであなたの場所はでマークされていOます。例えば: ...F...F F....... ........ .F...... ....O... ...F.... ........ .F....F. 毎秒、隣接するセルに移動します(対角線上ではありません)。すべての火は隣接するすべてのセルに広がります。火事にならないセルに移動できない場合、あなたは死にます。野外に出れば生き残ります。この例で何が起こるか見てみましょう: ...F...F F....... ........ .F...... ....O... ...F.... ........ .F....F. ..FFF.FF FF.F...F FF...... FFF..... .F.F.O.. ..FFF... .F.F..F. FFF..FFF FFFFFFFF FFFFF.FF FFFF...F FFFF.... FF.FF.O. .FFFFFF. FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFF.FF FFFFF.FF FFFFFFFO FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF …

18
コードを盛り上げる
入力 このチャレンジの入力はありません チャレンジ 出力するコードを書く: 数字の合計がコードのバイト数に等しい最初の10個の素数 例 のは、あなたのコードがあるとしましょうCo&%423@k"oo"である13 bytes 、あなたのコードを出力しなければならないが[67, 139, 157, 193, 229, 283, 337, 373, 409, 463] 、それらは、その合計.... [OK]をあなたはそれを得た最初の10個の素数です! コードがの場合、8 bytes出力する必要があります[17, 53, 71, 107, 233, 251, 431, 503, 521, 701] ルール 最初の10 ^ 8素数のみを使用する必要があります 。つまり、すべての数字は<2038074743 = 10 ^ 8th素数でなければなりません あなたがいる場合、この範囲内の10個の素数を見つけることができません、あなたのバイトに合わせて、あなたは「見つけるために(あなたも、いくつかのバイトを追加する必要がある可能性があります)あなたのコードを調整する必要がありますバイトの作業数を」 10個の素数を好きなように出力するだけです これはcode-golfなので、バイト単位の最短コードが勝ちです!

1
ドイツ語の発音を推測する
前書き 英語とは異なり、ドイツ語は音素表記システムが非常に優れていると考えられています。これは、スペルと発音の対応が近いことを意味します。なじみのない単語を考えても、スペルシステムのために、その単語の発音方法を知っているでしょう。これは、コンピューターでも正しく実行できるはずだということですか? チャレンジ ドイツ語の単語を表す文字列を入力として受け取り、その発音を国際音声文字(IPA)で出力または返すプログラムまたは関数を作成します。 もちろん、ドイツ語や完全なIPAを学ばせるつもりはありません。この1つのWikipediaのセクションでは、あなたが必要とするルール、と私はungolfed C#のコード化されてきたIPAにほぼすべてのドイツ語を提供リファレンス実装を。 このリンクには、400の一般的なドイツ語の単語とそのIPAの発音のリストも提供されています(検証に必要です)。そのリストから例を挙げると、入力がのsolltest場合、正しい出力はˈzɔltəstです。 参照実装は、Wikipediaセクションで言及されていない2つの有用なルールを追加します:単語のストレスが最初の音節(ドイツ語である可能性が非常に高い)にあると想定し、文字「e」がシュワ音/ə/を表すタイミングを決定するために、より良いヒューリスティックを使用します。プレフィックスの特別な処理も実装しますが、思ったほど結果が改善されませんでした。 詳細 有効なエントリと見なされるには、プログラムが次の要件を満たしている必要があります。 IPA出力は、参照語リストの 400語のうち少なくとも300語と完全に一致する必要があります(参照実装は333正しいです) あなたのプログラムは、もっともらしいドイツ語を推測する必要があります。したがって、技術的な要件があります。これは、正規表現に一致し、[a-zA-ZäÄöÖüÜ][a-zäöüß]*少なくとも1つの母音(aeiouyäöü)を持つ入力については、空白以外の出力を生成し、エラーを出力しないことを意味します。 プログラムは決定論的である必要があります(同じ入力に対して常に同じ出力を生成します) それ以外の場合、標準的な抜け穴は禁止されています(特に、オフサイトリソースの取得に関するもの) 許可されているその他のこと: 必要に応じて、出力に先頭と末尾の空白を含める 出力に既存の文字エンコーディングを使用します(Unicode以外がうまく機能することは想像できませんが、可能であればおめでとうございます) 入力は、ユニコード正規化形式NFD、NFCなどのような正規化された形式であると仮定します。たとえば、äは単一の文字またはベース文字+結合文字として書かれていますか? 標準の入出力方法を使用する スコアリングとIPAキャラクター スコアリングはバイト単位です。ドイツ語の文字とIPAの文字はUTF-8で2バイトであることに注意してください。また、IPA文字U + 0327 COMBINING INVERTED BREVE BELOW(̯)はUnicode結合文字であり、2バイトのUTF-8文字そのものです。つまり、ɐ̯のようなものはUTF-8では4バイトとしてカウントされます。好奇心の強い人のために、この記号は母音が音節核を形成しないことを意味します(前のものは代わりに形成します)。 また、一部のフォントでは他のASCII文字のように見えるこれらのIPA文字に注意してください。 参照語リストの作成方法 このセクションは、チャレンジには不要な追加情報です。 単語リストはこのウィクショナリーの単語頻度リストから取得され、大文字と小文字の違いと、英語のウィクショナリーにドイツ語のエントリがない2つの単語(oh&hey)のために繰り返しを削除しました。IPAは、英語とドイツ語の両方のウィクショナリーを見ていた。複数の発音が提供された場合、より正式で標準的なものを選びました。これが明確でない場合は、一般的なルールに最も適合するものを選択しました。 また、文字「r」の発音方法を標準化する必要がありました。この文字がどのように発音されるかは地域に大きく依存しており、ウィクショナリーは選択したものとまったく一貫していませんでした。私はそれが次の傾向があると感じました:「r」は長い母音が続き、母音が続かないとき発音される/ɐ̯/、そうでなければ、それはʁです。したがって、非常に一貫性のある/(f)ɛɐ̯/であるver-およびer-プレフィックスを除き、すべてのルールをそのルールに従うように変更しました。同様に、「eu」を/ɔʏ̯/として標準化しました。

28
サンドイッチはいつ入手できますか?
次の入力のいずれかを指定します。 スイートオニオンチキン照り焼き ローストチキン 七面鳥の胸肉 イタリアのBMT ツナ 黒い森のハム ミートボールマリナラ1〜7(または0〜6)の数字を出力します。月曜日を最低値として、その取引を取得する曜日を表します。入力は、必要に応じてすべて小文字または大文字にすることができます(つまり、「italian bmt」)。インターネットは許可されていません。

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

4
Splix.io-キングオブザランド
あなたは、その支配下にある土地を増やしたいと思う進取の気性のある人です。これは非常に簡単です-現在の土地の外に出て、あなたの土地にループバックすると、そのループ内のすべてがあなたのものになります。しかし、キャッチがあります。他のドットが何らかの方法でループを見つけて交差すると、死にます。 まだ試していない場合は、Splix.ioにアクセスしてゲームを試してください。矢印キーを使用して、動きを制御します。 GIF クレジット:http : //splix.io/ 仕様 すべてのプレイヤーは、200x200ボード上のランダムな位置から始まります。(私はこれを変更する権利を留保します:)。可能な限り多くのポイントを集めるために、一定量の動きがあります。ポイントは以下によって集計されます: 殺したプレイヤーの数は300回 ラウンド終了時に所有する土地の量 これは、他の人があなたの土地を盗むことができるというポイントをもたらします。彼らがあなたの土地の一部と交差するループを開始した場合、彼らはそれを主張することができます。ラウンド中に死亡した場合、そのラウンドのすべてのポイントを失います。 各ラウンドには、ランダムに選択されたプレーヤーのグループ(最大5人のユニークなプレーヤー)がいます(変更される場合があります)。すべてのプレイヤーが同数のラウンドに参加します。ボットの最終スコアは、ゲームごとの平均スコアによって決まります。各ゲームは2000ターンで構成されています(変更される場合もあります)。すべてのボットは同時に動きます。 死亡例 頭突き 両方のプレイヤーが頭を突き合わせて死ぬ。これは、両方のプレーヤーが自分のスペースの端にいる場合でも、まだ当てはまります。 ただし、自分の土地にプレイヤーが1人しかいない場合、他のプレイヤーは死亡します。 ラインクロス この場合、紫色のプレイヤーのみが死亡します。 独自のラインを越えることはできません。 ボードを終了する プレイヤーがボードから退出しようとすると、死亡してすべてのポイントを失います。 撮影エリア プレイヤーは、トレイルがあるときにエリアをキャプチャし、自分の土地に再び入ります。 赤は2本の赤い線の間を塗りつぶします。プレーヤーが記入しない唯一のケースは、別のプレーヤーがループ内にいる場合です。明確にするために、これは自分が所有する土地だけでなく、他のプレイヤー自身がループにいるときにのみ適用されます。プレイヤーは他の人の土地を占領できます。プレイヤーがトレイルに囲まれたエリアを埋めることができない場合、トレイルは通常の土地に直接変換されます。他のプレイヤーの土地ループ内のプレイヤーが死亡した場合、そのループ内の領域は塗りつぶされます。プレイヤーが死亡するたびに、ボードは埋めることができるエリアを再検査されます。 コントローラーの詳細 コントローラーはこちらです。元のゲームと非常によく似ていますが、KotHおよび技術的な理由により適したものにするために、小さな変更が加えられています。@NathanMerrillのKotHCommライブラリを使用して構築されており、@ NathanMerrillの多大な支援も受けています。チャットルームのコントローラーで見つかったバグをお知らせください。KotHCommとの一貫性を保つため、コントローラー全体でEclipseコレクションを使用しましたが、ボットはJavaコレクションライブラリのみを使用して作成できます。 すべてがgithubリリースページの uberjarにパッケージ化されています。使用するには、ダウンロードしてプロジェクトに添付し、オートコンプリートに使用できるようにします(IntelliJの指示、Eclipse)。送信をテストするには、を使用してjarを実行しjava -jar SplixKoTH-all.jar -d path\to\submissions\folderます。にpath\to\submissions\folderという名前のサブフォラーがあることを確認し、javaそこにすべてのファイルを配置します。ボットでパッケージ名を使用しないでください(KotHCommでは可能ですが、もう少し面倒です)。すべてのオプションを表示するには、を使用します--help。すべてのボットをロードするには、を使用します--question-id 126815。 ボットを書く ボットの作成を開始するには、を拡張する必要がありますSplixPlayer。 Direction makeMove(ReadOnlyGame game, ReadOnlyBoard board) ここで、ボットにどの動きをさせるかを決定します。nullを返してはいけません。 HiddenPlayer getThisHidden() のHiddenPlayerバージョンを取得しthisます。ボットをボードと比較するのに便利です。 enum Direction 値 East (x …

28
行列は中心対称ですか?コードも中心対称ですか?
定義 中心対称行列は正方形である行列、その中心の周りに対称です。より厳密には、サイズn × nの行列は、iAAAn×nn×nn \times n以下の関係が満たされます。 i,j∈([1,n]∩Z)i,j∈([1,n]∩Z)i,\: j \in ([1, n] \cap \mathbb{Z})Ai,j=An+1−i,n+1−jAi,j=An+1−i,n+1−jA_{i,\:j}=A_{n+1-i,\:n+1-j} そのような行列の例 これらのマトリックスの対称性の説明を次に示します(前述のウィキペディアの記事から引用)。 偶数側の長さ()の中心対称行列:4×44×44\times 4 ⎛⎝⎜⎜⎜1584267337624851⎞⎠⎟⎟⎟(1234567887654321)\left(\begin{matrix} 1 & 2 & 3 & 4 \\ 5 & 6 & 7 & 8 \\ 8 & 7 & 6 & 5 \\ 4 & 3 & 2 & 1\end{matrix}\right) そして、奇数側の長さ(3×33×33\times …

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