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

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

7
Pentomino Rectangleを印刷する
入力を受け取らず、12個の異なるペントミノで作られた長方形のテキスト表現を常に印刷または返すプログラムまたは関数を作成します。 長方形のサイズと方向は任意ですが、12個すべてのペントミノを1回だけ使用する必要があるため、エリア60になります。各ペントミノは、異なる印刷可能なASCII文字で構成する必要があります(使用する必要はありません)上からの手紙)。 たとえば、この20×3ペントミノ長方形ソリューションを出力することを選択した場合: プログラムの出力は次のようになります。 00.@@@ccccF111//=--- 0...@@c))FFF1//8===- 00.ttttt)))F1/8888=- あるいは、この6×10ソリューションをゴルフする方が簡単かもしれません: 000111 203331 203431 22 444 2 46 57 666 57769! 58779! 58899! 5889!! 長方形のソリューションならどんなものでもかまいませんが、プログラムで印刷する必要があるのは1つだけです。(出力の末尾の改行は問題ありません。) この優れたWebサイトには、さまざまな長方形のサイズに対応する多数のソリューションがあります。おそらく、ソリューションをできるだけ短くするために、それらを参照する価値があります。これはコードゴルフで、バイト単位の最短回答が勝ちです。

1
The Nineteenth Byteで最も多くのスターを獲得しているのは誰ですか?
注:この課題には、HTML Webページのダウンロードと選別が含まれます。あなたの言語がこれを処理できない場合、このチャレンジに参加したくないかもしれません。 前書き The 19th Byte Chatでは、誰が右starをリードするかについての議論が常にあります。だから、みんなを助けて、チャットでユーザーごとの星の合計数を数えましょう。 チャレンジ Nゼロより大きい正の整数を指定Nして、チャット内の最後のスター付きメッセージのスターボードのリーダーを計算します。これらのメッセージはここで表示できます。ヒント:各ページには50個のスター付きメッセージがあります。出力は、スター付きメッセージの量による上位5ユーザーのリストになります。これらのユーザーのユーザー名を表示できる場合、バイトカウントから-15%のボーナスが付与されますが、ユーザーID番号を表示するだけであればペナルティは与えられません。スター付きメッセージの一部に冒fanがあることに注意してください。このタイプの言語に敏感な場合は、注意してページを表示してください。 例(画像はこのチャレンジを書いている時点での現在の右boardです): (赤)入力:5出力(ボーナスあり):[Geobits Sp3000 PhiNotPi Seadrus] (青)入力:10出力(ボーナスなし):[51024 17335 24697 116494 129255] (緑)入力:14出力(ボーナスなし):[51024 116494 141697 17335 24697] 余分なもの: トップ5のネクタイは、ユーザーID番号の小さい順に並べられます。ユーザーが5人未満の場合は、最後に空のスロットがあるリーダーボードを出力します。入力および出力は、任意の形式にすることができます。出力は大文字にする必要はありません。入力がより大きい場合50、2ページ目、3ページ目などのメッセージをカウントする必要があり2^31ます。存在し、2)プログラムをクラッシュさせません(配列を大きくしたり、メモリを使い果たしたりすることによって)。 これはcode-golfで、バイト単位の最短コードが勝ちです! リーダーボード これは、通常のリーダーボードと言語ごとの勝者の概要の両方を生成するスタックスニペットです。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 ## Language Name, N bytes N提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: ## Ruby, <s>104</s> <s>101</s> 96 bytes ヘッダーに複数の数字を含める場合(たとえば、スコアが2つのファイルの合計であるか、インタープリターフラグペナルティーを個別にリストする場合)、実際のスコアがヘッダーの最後の数字であることを確認します。 ## Perl, 43 + 2 (-p flag) …

4
素朴な挑戦
この課題は、オリバーサックスの次の引用に触発されています。 「11歳のとき、「私はナトリウムです」と言うことができました(要素11)。現在79歳のとき、私は金です。」-オリバーサックス 文字列で数字を見つけて、対応する要素の記号に置き換えてほしい。(1はH、2はHe、3はLiなど)。従うべきいくつかのルールがあります。 通常、1桁と2桁は対応する要素に置き換えられます。数字の先頭の0は無視します。数字に0しかない場合は、無視してください。例えば、1 01 10 0 00となりH H Ne 0 00 2桁を超える数字は、2つのグループに分けられます。奇数桁の場合、末尾に余分な1桁が必要です。例えば、0153 5301 153なるHI IH PLiこの規則の、あなただけの1から99までの要素を知っている必要がありますので 数字は、それらを囲む文字に関係なく同じように扱われ、コンマと小数点は数字の一部ではありません。P90X 42,800 3.14159になるだろうPThX Mo,Hg0 Li.SiPF 入力/出力の例(I / O): I: 32289216 O: GeNiUS I: J08017 5811 O: JOHN CeNa I: M18227 0592tt10r O: MArTiN BUttNer I: De072816 O: DeNNiS I: D088r1907085 O: DOOrKNOB I: …

3
調和のとれた「収束」
交互ハーモニックシリーズは、よく知られて収束級数です。 「明らかに」、2の自然対数に収束することは明らかです。 系列は完全に収束するわけではないので、用語を単純に並べ替えることで、必要なものに近づけることができます。シリーズをeに収束させたいとします。私がしなければならないのはこれだけです: パターンをキャッチしなかった場合、明らかなパターンはありません。仕組みは次のとおりです。 正と負の項の観点から交互高調波系列の項を検討します。 目標を超えるのに十分な正の用語を足し合わせます(e)。(別名sum > target) 次の否定項を引きます。 2に戻ります。 手順2で、の場合、sum == target別の正の用語を追加する必要があることに注意してください。 これから、次のように各番号に関連付けられたシーケンスを定義できます。 上記のアルゴリズムに従ってください 各正の項について、1を出力します。 負の項ごとに、0を出力します。 このシーケンスを数字の「調和ビットパターン」と呼びましょう。たとえば、eのHBPは次のよ​​うに始まります。 1, 1, 1, 1, <32 times>, 0, 1, 1, <54 times>, 0, 1, 1, ... あなたの挑戦: あなたが与えられます: 範囲[-10、10]の合理的な入力ターゲット(注:高調波系列を介して10に到達する場合でも、数百万の用語が必要です)。これは小数(別名1.1)である場合もあれば、直接有理数を取る場合もあります(別名12/100) 正のint n入力。出力する調和ビットパターンの項の数を指定します。 ターゲットの正確な調和ビットパターンを指定した数の用語に出力することが期待されています。スペース区切り値、カンマ区切り、区切りなしなどを出力できます。0と1のパターンが明確に表示され、一貫した分離で左から右に読み取られる限り。 テストケース >>> 0, 1 1 >>> 0, 2 10 >>> 0, …

4
アメリカ(nマップ)を再び偉大にする
新しいボーナス!(下記参照) 米国共和党の大統領候補であるベンカーソンの地図作成チームは、地図に問題を抱えています(ワシントンポスト経由の画像)。 問題は、彼らがJob™に適したツールを持っていないことです。彼らは可能な限り最もコンパクトで信頼性の高いプログラムを必要としているので、再びマップを作成することを心配する必要はありません。それが彼らがあなたを雇った理由です。このマップを取得して、目的の色で再度出力する必要があります。 Theshibboleth [GFDL(http://www.gnu.org/copyleft/fdl.html)またはCC-BY-SA-3.0(http://creativecommons.org/licenses/by-sa/3.0/)]により、ウィキメディアコモンズ すべての州がどこにあるかわからない場合(あなたがアメリカ人ではない...またはあなたがアメリカ人であるため)、ここにすべての名前の地図があります(このチャレンジにはワシントンDCは必要ありません): 「州名2の米国の地図」。ウィキメディアコモンズを介してCC BY-SA 3.0でライセンス供与-https ://commons.wikimedia.org/wiki/File: Map_of_USA_with_state_names_2.svg#/ media/File:Map_of_USA_with_state_names_2.svg たとえば、入力がの場合Ohio, Indiana, Illinois;New York, New Jersey, Florida、次を出力します。 空白のマップ画像は、SVGおよびPNG形式で利用できます。便宜上、アルファベット順に50の州すべてのリストを示します これは、コードゴルフとグラフィック出力の課題です。出力はSVGまたは画像ファイルである必要があります。画面に出力を表示するだけでは不十分です。入力は、STDINから取得するか、テキストファイルを読み取る必要があります。入力をフォーマットする方法には柔軟性がありますが、各状態の完全な名前を含む必要があり、赤(共和党)状態が最初にリストされ、青(民主党)状態が次にリストされます。着色には、赤と青の2つの異なる色合いを使用できます。もちろん、空のマップイメージを、プログラムと同じフォルダーに任意のファイル名で配置できます。 精度基準 出力がラスターファイルの場合、少なくとも800x495ピクセルである必要があります。また、SVGを同じサイズに1.5ピクセル以上拡大した結果から行が逸脱してはなりません。出力がベクターファイルの場合、両方が800px x 495pxにスケーリングされたときに、線がSVGから1.5ピクセル以上ずれてはなりません。 ボーナス! ベンは外国の図書館への依存を削減しようとしています。現在、地図のラスターグラフィックバージョンのみを入力として使用し、地域検出用の独自のアルゴリズムを作成するすべてのユーザーに-50%のボーナスを提供しています。最終的に、あなたのアプローチが「独自の書き込み」アルゴリズムとしてカウントされるかどうかを判断するのは私の判断です。 幸運を!

3
正の整数で不等式を解決する
より小演算子()を使用する数学的な不等式の空でないリストを取り込むプログラムまたは関数を作成し<ます。リストの各行は次の形式になります [variable] < [variable] ここで、a [variable]は小文字のaz文字の空でない文字列です。通常の数学およびプログラミングと同様に、同じ名前の変数は同一です。 すべての不等式が満たされるように各変数に正の整数を割り当てることができる場合、そのような割り当てを持つ変数のリストを出力または返します。このリストの各行の形式は次のとおりです。 [variable] = [positive integer] すべての変数は、任意の順序で1回だけ出現する必要があります。 不等式のセットには多くの正の整数解が存在する可能性があることに注意してください。それらのいずれかが有効な出力です。 不等式の解決策がない場合は、何も出力しないか、偽の値を出力します(ユーザー次第)。 バイト単位の最短コードが優先されます。 例 入力が mouse < cat mouse < dog これらはすべて有効な出力になります。 mouse = 1 cat = 2 dog = 2 mouse = 37 cat = 194 dog = 204 mouse = 2 cat = 2000000004 dog = …
16 code-golf  math 

6
複数回クイン
あなたの仕事は、以下を行うプログラムの作成です。 あなたは数を取る必要があります。(正、負、小数は入力可能です) 負の場合は、クインを逆にします。そしてその数を否定する(正になる) 次に、<入力数の整数部分>回繰り返し、ソースプログラムから最初に<floor(入力数の小数部分*長さ)>を出力します。整数の場合、小数部はゼロです。 プログラムが回文ではない場合、-10%のボーナス。 例 プログラムが「ABCDEFG」の場合、 1。 5 ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG 説明 ABCDEFGを5回 2。 -2 GFEDCBAGFEDCBA 説明 GFEDCBA(反転ABCDEFG)2回 3。 7.5 ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABC 説明 ABCDEFGを7回、続いてABC(ABCDEFGの最初の3(floor(0.5 * 7)= floor(3.5)= 3)文字) 4。 -0.3 GF 説明 GFEDCBA(反転ABCDEFG)0回、続いてGF(GFEDCBA(reversed ABCDEFG)の最初の2(floor(0.3 * 7)= floor(2.1)= 2)文字) 5。 0 <empty> 説明: <空>は、プログラムが出力されないことを意味します。空の文字列として定義されるのは、ABCDEFGゼロ回です。
16 code-golf  quine 

4
Three Men's Morrisでさらに2つの動きで勝つことができますか?
報奨金 No. 1(授与) 最初の有効な回答には50人の担当者を投入します No. 2(授与) 最短の有効な回答を得るために、さらに100人の担当者を投入します。 No. 3(提出用にオープン) 有効な回答が大幅に短くなった最初の回答には200人の担当者を投入します。重要なのは、現在の最短回答の最大45%(564バイトx 0.45 = 最大254バイト)です。 ゲーム 古典的なゲーム「Nine Men's Morris」または単に「Mill」を覚えていますか?Three Men's Morrisと呼ばれるバリエーションがあり、これは変更可能な三目並べのようなものです。 ルール これはゲームのブランクボードです。 a b c 1 [ ]–[ ]–[ ] | \ | / | 2 [ ]–[ ]–[ ] | / | \ | 3 [ ]–[ ]–[ ] [ …

1
暗号化されたローマ数字をアラビア数字に変換します
一連の文字をローマ数字として解釈するアルゴリズムを作成します。(以下のローマ数字の規則を参照) それぞれ異なる文字には、一致するアラビア語の10進数値があり、最大値はありません。しかし、あなたは事前にキーを持っていないので{A=10, I=1, X=5, ... Z=1000000}、あなたの解釈によって決定されます。 チャレンジ 介して読み出し入力STDIN出力経由または同等の書き込みSTDOUTまたは同等 有効な入力は、大文字と小文字の組み合わせ、つまり一致です \[a-zA-Z]+\ 入力を検証して、文字シーケンスが有効なローマ数字として解釈できるかどうかを確認する必要があります 入力が検証に合格した場合、有効な出力はアラビア語の10進数の最低解釈であり、使用されるキーAaはそうでは4 {a=5, A=1} ない と解釈される6 {A=5, a=1} か、または 9 {a=10, a=1} ローマ数字の規則 10のべき乗を表す文字のみを繰り返すことができます。連続して最大3回、合計で4回などです。 II III XXXIX 値が大きい別の文字の後に1つ以上の文字が配置されている場合は、その量を追加します AAaa => 22 {A=10, a=1} (20 + 2 = 22) bbAAaa => 222 {b=100, A=10, a=1} (200 + 20 + 2 = …

6
その確率分布は誰ですか?
前書き この課題では、確率分布から独立して描かれた非負の浮動小数点数のリストが与えられます。あなたの仕事は、数字からその分布を推測することです。チャレンジを実行可能にするために、選択できるディストリビューションは5つだけです。 U、区間[0,1] の均一分布。 T、モードc = 1/2の区間[0,1] の三角分布。 B、パラメーターα=β= 1/2の区間[0,1] のベータ分布。 E、レートλ= 2の区間[0、∞)の指数分布。 G、間隔[0、∞)のガンマ分布。パラメーターk = 3およびθ= 1/6。 上記の分布はすべて平均がちょうど1/2であることに注意してください。 タスク 入力は、長さが75〜100の非負の浮動小数点数の配列です。出力はUTBEG、上記の分布のどれに基づいて数字が引き出されたかに基づいて、文字の1つになります。 ルールとスコアリング 完全なプログラムまたは機能のいずれかを指定できます。標準の抜け穴は許可されていません。 ではこのリポジトリ、5つのテキストファイル、各ディストリビューションの1、長いそれぞれ正確に100行があります。各行には、分布から独立して描画され、小数点以下7桁に切り捨てられた75〜100個のフロートのコンマ区切りリストが含まれています。言語のネイティブ配列形式に一致するように区切り文字を変更できます。回答として認定するには、プログラムで各ファイルから少なくとも50個のリストを正しく分類する必要があります。有効な回答のスコアは、バイトカウント+誤分類リストの総数です。最も低いスコアが勝ちます。

1
長さのリスト、およびそれらの長さを表す文字列が与えられた場合、それらは一致しますか?
長さのリストを表すパターンと、それらの長さを表す文字列が与えられた場合、それらは一致しますか? 興味のある人にとって、これは、ノノグラムの行または列が正しいかどうかを検証することと同等の質問です。ただし、これらのパズルになじみのない人にとって質問の混乱を少なくするために、Nonogramsに関連するすべての言語を省略しました。 入力 改行で区切られた2行のデータ。 最初の行は、スペースで区切られた整数のリストです。例: 3 6 1 4 6 この行は、2番目の行が一致しなければならない正の長さの不明な空のスペースで区切られた、整数リストに等しいサイズの塗りつぶされたスペースのパターンを示しています。一致した文字列の先頭と末尾に空のスペースが存在する場合もあります。 2行目は、1行目のパターンと一致する場合と一致しない場合があります。それは完全で構成され#、xと_。この行の長さは、少なくとも最初の行の整数の合計と、異なる整数の数から1を引いた長さであることが保証されており、これより長くすることもできます。したがって、この場合の2行目は、少なくとも24文字、または24文字の長さが保証されています。最初の行のパターンと一致する24文字の行の例を次に示します。(3+6+1+4+6) + (5) - 1 ###_######_#_####_###### 記号の意味: # これは塗りつぶされたボックスを表します x これは、「空であることが保証されている」とマークされたボックスを表します _ これは、不明/マークされていないボックスを表します。 ゴール アイデアは次のとおりです。 2行目が最初の行のパターンを満たす有効な行である可能性があることを検証します。 ERROR不明なスペースを埋めることができない場合、#またはx最初のものと一致させることができない場合は、明確なエラーメッセージを印刷する必要があります(これを選択する方法はあなた次第です。以下の例では、5文字である必要はありません)ライン。 行に完全に配置され、スペースで区切られた整数のゼロインデックスのインデックスを出力します。あいまいさがある場合は、indexを出力しないでください。 例: Input: | Output: | Reason: -------------------------------------------------------------------------- 3 6 1 4 6 | 0 1 2 3 4 | This is …

17
三角形の面積
もう1つの簡単な課題です。 あなたのタスク x座標とy座標の3つのペアを含み、それらの内部に形成される三角形の面積を計算する入力を受け取るプログラムまたは関数を作成します。計算方法を思い出せない人のために、ここで見つけることができます。 例: 1,2,4,2,3,7 # input as x1,y1,x2,y2,x3,y3 7.5 # output Wolfram Alphaで見る 考慮事項: 入力は、10を基数とする6つの正の整数です。 入力は合理的な形式であると想定できます。 ポイントは常に有効な三角形を形成します。 入力がなどの変数に既に保存されていると仮定できますt。 バイト単位の最短コードが勝ちです! 編集:混乱を避けるため、現在のコードを危険にさらすことなく入力を処理する方法を簡略化しました。 プログラム/関数は有効な領域を出力する必要があるため、出力として負の数を与えることはできません

4
理想的な質問
理想的な質問は何ですか?おそらくそれは単に深遠な思考の抽象化であり、夢、希望、思考、…の初期化である(… 5,024.2文字は省略されている)。したがって、質問を定量化するためにこのような要因を見つけることを提案します。また、この因子をQ FまたはQ因子と呼ぶことを提案します。このように質問のQファクターを決定します。 (それを思い出してください。) 目的数値を入力として、PPCG.SEでそれぞれの質問のQファクターを決定します。質問が存在しない場合は、単に出力します;-;(泣いている感情表現)。 例えば、取ります。(この質問): この場合の正味の投票はを意味します。 views = 23435 net votes = 33 edits = 6 answers = 30, answers^2 = 900 comments = 19 charsIOPN = "Joe Z.".length = 6 そう: r_F = 6 / 6 = 1 Q_F = r_F * (23435 * 33 + 6) / …
16 code-golf  math  number 

1
ピザを同じスライスに切る
これは、私が完全に読む前に、この質問がそうなると思っていたものです。 コードゴルファーのグループがThe Nineteenth Bite Pizzeriaに入ってピザを注文します。不規則な形状で、単位は正方形です。あなたの仕事は、彼らがそれを同一のスライスにカットするのを助けることです。つまり、スライスの形状とサイズはまったく同じでなければなりません。回転させることはできますが、反転/ミラーリングすることはできません。たとえば、テトリスのピースの場合、それらは同じ種類である必要があり、LピースとJピースの両方を使用することはできません。 入力 グループの人数を最初の行(常に2〜10の整数)で指定し、その後にピザを表す ''(スペース)および '#'文字の長方形の行列が続きます。すべての「#」文字は、エッジを介して接続されています。「#」文字の数は、人数の倍数であることが保証されています。 出力 同じマトリックスを印刷し、各「#」文字を0〜n-1(nは人数)の数字に置き換えます。各桁はスライスをマークする必要があります。スライス形状は、正方形のエッジで接続する必要があります。スライスの番号付けは、特定の順序である必要はありません。ピザを切る方法が複数ある場合は、どれでもかまいません。 必要に応じてピザをカットできない場合は、「No pizza for you!」という文字列を印刷する必要があります。代わりに。 得点 これはコードゴルフです。スコアはプログラムのバイト数になります。文字は、UTF-8エンコードによってカウントされます。最低スコアが勝ちます。 例 入力: 3 # ### #### # 出力: 0 100 1122 2 入力: 4 ### # # ### 出力: 001 2 1 233 入力: 2 # # ###### 出力: No pizza for you! …

3
通常のポリグラム
頂点の数n ≥ 3と「ステップサイズ」1 ≤ m < n/2 (2つの接続された頂点間の距離を示す)を指定して、対応する通常のポリグラムのグラフィカル表現を出力します。ポリグラムが複数の閉じたループで構成されている場合、各ループは異なる線色でレンダリングする必要があります。(これが分かりにくいように思える場合は、以下の例で問題を解決してください。) ルール 問題の合理的な解決策は、これらのルールを自動的に満たす可能性があります-「この黒いブロックは完全にポリグラムですが、あなたはそれを見ることができないので線幅を9000以上に設定しました。」 ポリグラムをファイル(ディスクまたは標準出力ストリームに書き込まれる場合があります)にレンダリングするか、画面に表示できます。 ベクターグラフィックまたはラスターグラフィックを使用できます。出力をラスタライズする場合、画像のサイズは400x400ピクセル以上である必要があり、ポリグラムの半径(中心から各頂点までの距離)は辺の長さの35%〜50%でなければなりません。 ポリグラムの縦横比は1でなければなりません(そのため、頂点は適切な円上にあります)-画像のキャンバスは長方形になります。 ポリグラムの線は、半径の5%より太くてはなりません(そしてもちろん、見えるようにゼロ以外の太さでなければなりません)。 ポリグラムに加えて軸またはフレームをレンダリングできますが、それ以外は何もレンダリングできません。 任意の(単色の)背景色を選択できます。 複数の閉ループで構成されるポリグラムの場合、少なくとも6つの視覚的に異なる色をサポートする必要があります。これらはすべて背景とは異なる必要があります。(グレースケールは、シェードがスペクトル全体に十分に広がっている場合は問題ありません。)コードは6つ以上のループで機能する必要がありますが、追加のループで色を区別する必要はありません(つまり、再利用することもできます)その時点での以前のループの色)。 これはコードゴルフなので、最短の回答(バイト単位)が勝ちです。 例 以下は、n = 16(列がに対応しn、行がに対応する)までのすべての出力mです。 クリックして拡大版をご覧ください。 largeの例として、以下nが(n, m) = (29, 11)あり(30, 12)ます:

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