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

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

1
数字のサイズは?
7セグメントの数字は、文字を使用してASCIIで表すことができます_|。サイズの1数字は次のとおりです。 _ _ _ _ _ _ _ _ | _| _| |_| |_ |_ | |_| |_| | | | |_ _| | _| |_| | |_| _| |_| 各セグメントを比例的に長くすることにより、より大きなサイズが形成されます。ここにカップルサイズの3桁があります。 ___ ___ ___ ___ ___ ___ ___ | | | | | | | | | | | | …

1
レゴギアトレイン
キース・ランドールによるレゴのギア比チャレンジに触発されました。 私も巨大なレゴロボットを構築し、最終的にはこれまでにない競争で他のロボットを破壊できるようにする予定です。ロボットのさまざまな部分。このような複雑なタスクに必要な複雑なギアトレインを構築するのに役立つ最短のプログラムを書いてほしい。もちろん、半径1、2、3、および5の任意レゴユニットのギアのみを使用します。 歯車列の各歯車には、2Dグリッド上の特定の整数座標があります。最初のギアは(0,0)に配置され、最終ギアは非負の座標に配置されます。最初と最後のギアの位置とサイズが入力として提供されます。プログラムは、どのギアがギャップを埋めるのかを指示する必要があります。 さらに、プログラムは、ギアトレイン内の可能な最小数のギアを使用する必要があります。ギアの数が少ない/列車=列車が多い** =大きくて優れた破壊ロボット。 入力は1行で構成されます。 X,Y,B,A XとYは最終ギアの座標です。最初のギアは常に(0,0)にあります。BとAは、それぞれ最終ギアと初期ギアの半径です。難易度を上げるには、出力ギアが正しい方向に回転することを確認する必要があります。AとBの符号が同じ場合、出力ギアは同じ方向に回転する必要があり、奇数のギアを使用する必要があります。反対の符号がある場合、偶数個のギアを使用する必要があります。 出力は、各追加ギアのX位置、Y位置、および半径のリストであり、1行に1つのギアがあります。最小ギアソリューションが複数ある場合は、選択したもののうち1つだけを印刷します。出力内のギアの順序は重要ではありません。 例(さらに同等の解決策が考えられる): in 4,0,1,1 out 2,0,1 in 7,7,-2,-2 out 4,3,3 OR 0,7,5 OR the above reflected over y=x line in 7,8,-1,2 out 7,0,5 7,6,1 OR 7,0,5 1,8,5 in 7,7,2,-2 out 4,-3,3 7,1,2 12,1,3 12,7,3 OR any permutation of the above, or reflected …

8
線グラフを滑らかにする
整数nの入力と正の整数m 1、 m 2、...のリストが与えられると、整数m 1 '、 m 2 '、...のリストを出力します。ここで、m x 'はmの平均として定義されます xnからm x + n。 これらの平均を計算するとき、範囲外のインデックスを無視します(それに応じて合計を除算するものを調整します)。nは常に≥1になりますが、mの長さの半分(切り捨て)以上にはなりません。これは、mの最小長が4 であることを意味します。mの要素ます正の整数になりますが、出力は小数点以下3桁まで正確でなければなりません。 リストである入力/出力要素は、空白/コンマ区切りの文字列または配列/リスト/などのいずれかです。入力については、ソリューションが関数の場合、nの最初の引数とm xとして追加の引数を追加で取ることができます(これはコマンドライン引数にも適用されます)。 以下が視覚的な表現ですn=1。 1 4 5 7 10 __/ | | | L avg(1,4) = 2.5 | | | \___/ | | L avg(1,4,5) = 3.333 | | \___/ | L avg(4,5,7) = …

6
シェークスピアスクリプトを分割する
ウィリアム・シェークスピア氏が脚本を書きました。たくさんの演劇。彼のすべての作品を含むこのtarballでは、彼の演劇はそれぞれ1つの長いファイルです。 ステージ制作のためにシーンに分割する必要があります。アクターは短気なので、コードはできるだけ短くする必要があります。 仕事: あなたの仕事は、このファイルに含まれる演劇をから始まる番号が付けられた別々のファイルに分割するプログラムまたは関数を書くこと1です。すべての空白とタイトルを保持する必要があります。 入力: 入力は、を介したシングルプレイstdin、またはパラメーターとしてのファイル名になります。選んでいいですよ。プレイは次のようになります。 TITUS ANDRONICUS DRAMATIS PERSONAE SATURNINUS son to the late Emperor of Rome, and afterwards declared Emperor. BASSIANUS brother to Saturninus; in love with Lavinia. TITUS ANDRONICUS a noble Roman, general against the Goths. MARCUS ANDRONICUS tribune of the people, and brother to Titus. LUCIUS …
13 code-golf  string 

4
何週間ですか?
あなたの仕事は、単一の数字を出力することです。特定の日付範囲が交差するISO週の数。ウィキペディアを引用すると:An average year is exactly 52.1775 weeks longですが、これは平均的なものではありません。 入力は、スペースで区切られた2つのISO日付で構成されます。 0047-12-24 2013-06-01 終了日が開始日より前になることはありません。簡単にするために、外挿されたグレゴリオ暦を使用します。 テストケース: Format: input -> output 2015-12-31 2016-01-01 -> 1 (both are within week 53 of 2015) 2016-01-03 2016-01-04 -> 2 (the 3rd is within week 53, and the 4th is in week 1) 2015-12-24 2015-12-24 -> 1 (this …
13 code-golf  date 

4
エントロピーの計算
入力 M2つのスペースで区切られた整数の行として表される行列。各行整数の同じ数を有し、各整数のいずれかであろう-1又は線当たり整数の1数が最も20であろうが M故になり2によってn場合n2本のラインのそれぞれに整数の数です。 コードは完全なプログラムでなければなりません。標準入力またはファイルからの入力を受け入れます(これは選択です)。標準入力、ファイル、または単にパラメータとして入力を受け入れることができます。ただし、後者を行う場合は、コードがどのように機能するかを明示的に示し、完全なプログラムでなければならずM、入力でマトリックスがどのように表されるかを覚えておいてください。言い換えれば、あなたは何らかの解析をしなければならない可能性が高いです。 出力 の要素が{-1,1}から均一かつ独立して選択される分布のバイナリシャノンエントロピー。 は、次元の列ベクトルです。M*xxxn 離散確率分布のエントロピーは - sum p_i log_2(p_i) この場合、p_iは、i番目の一意の可能性の確率ですM*x。 例と役立つヒント 実用的な例として、マトリックスMを -1 1 -1 -1 今、すべての2^2異なる可能なベクトルを見てくださいx。それぞれについて、M*xすべての結果を計算して配列(2要素ベクトルの4要素配列)に入れます。4つのベクトルのそれぞれについて、発生する確率はですが1/2^2 = 1/4、各一意の結果ベクトルM*xが発生する回数にのみ関心があるため、同じ一意のベクトルにつながる構成の個々の確率を合計します。言い換えると、可能な一意のM*xベクトルは、調査している分布の結果を記述し、これらの各結果の確率を決定する必要があります(構築により、常に整数倍1/2^2、または1/2^n一般的に)エントロピーを計算します。 一般的なnケースではM、可能な結果に応じて、M*x「すべて異なる」(この場合はinのn値がiありp_i、それぞれp_iがに等しい1/2^n)から「すべて同じ」(この場合は単一の可能性があります)結果、およびp_1 = 1)。 具体的には、上記の2x2行列の場合M、4つの可能な構成([+-1; +-1])を乗算することで、結果の各ベクトルが異なることがわかります。そのため、この場合、4つの結果があり、結果としてp_1 = p_2 = p_3 = p_4 = 1/2^2 = 1/4。log_2(1/4) = -2私たちが持っていることを思い出してください: - sum p_i log_2(p_i) = -(4*(-2)/4) = 2 したがって、このマトリックスの最終出力は2です。 テストケース 入力: …
13 code-golf  math 

4
スペイン語の不完全性の共役/ Condigue en el imperfecto de indicativo
その不定形のスペイン語の動詞の入力が与えられた場合、示唆的な不完全の6つの形式すべてに活用された動詞を出力します。 不定詞を不完全に結合するには、不定詞の末尾(-ar、-er、-ir、場合によっては-ír)を削除し、以下にリストされている不完全な末尾を追加します。不完全には3つの不規則な動詞がありますが、以下にもリストされています。 Verb ending Replace with... -------------------------------------------------------- -ar -aba, -abas, -aba, -ábamos, -abais, -aban -er, -ir, -ír -ía, -ías, -ía, -íamos, -íais, -ían Irreg. verb Conjugations -------------------------------------------------------- ser era, eras, era, éramos, erais, eran ver veía, veías, veía, veíamos, veíais, veían ir iba, ibas, iba, íbamos, ibais, iban この課題のために、アクセント付き文字の代わりに大文字を使用してください(áはAに、éはEに、íはIになります)。これは、アクセント付き文字がUTF-8で2バイトであるためですが、他のエンコーディングでは異なる場合があるため、そのいずれかに対処する必要はなく、代わりに印刷可能なASCII内に留まる必要があります。 不定詞は、irを除いて常に3文字以上の長さであり、-írで終わる動詞を除き、アクセント付き文字を含むことはなく、常に-ar、-er、-ir、または-ír。再帰動詞を処理する必要はありません。 …

7
通常および逆の感嘆符と疑問符のペア
チャレンジ ¡私たちは感嘆符と疑問符を逆さの仲間に与えるつもりです! 終わる文章を含むテキストの体を考えると.、?あるいは!、逆疑問符、先頭に追加¿、疑問文(で終わる文章へ?)と逆感嘆符、¡、感嘆(で終わる文章にします!)。で終わる文.は無視されます。 文は空白(スペース、タブ、改行)で区切られ、英数字、コンマ、アポストロフィ、スペースのみが含まれます。すべての文には少なくとも1つの単語があります。すべての文の最初の単語は大文字であることが保証されています。入力は、任意の空白で開始および終了できます。 例 入力: Hello there! What is your name? My name is Ron. What's your name? My name is Alex. Nice to meet you! Nice to meet you to! How was your break? It was great, I spent all my time code golfing! What's that? Wow, you're …

2
魚道は終わりましたか?
私は大好きです> <>、> <>は人生です!2Dの言語は素晴らしいです!このチャレンジでは、コードゴルフ中に「魚のような」道路に終わりがあるかどうかを言う必要があります。 定義 魚道は、次のものを含むタイルで構成されています。 v (go down) > (go right) ^ (go up) < (go left) / (mirror) \ (mirror) 他のキャラクター(を除く-|+)は、道路の境界線にある花(または魚の頭)のように、注意散漫と見なされる場合があります。 道路は常に、-|+シンボルで区切られた長方形のグリッドの左上隅から始まります。道をたどって境界線に辿り着くと、道は終わりになります。さもなければ、無限の道に閉じ込められます。 道路上の道を見つけるにはv>^<、ミラーとミラーの指示に従ってください。鏡はあなたがどこから来たかに応じて90°反射します。仕組みはv>^<次のとおりです(ルートの表示に使用): ^ ^ >/< >\< v v </> <\> ^ ^ 終了する場合、道路は次のようになります。 +--------------------+ |>\/ this way >\/> | this one ends here | v^ \/ | | …

4
ゲッターをゲット
タスク 私は誰もが自動コード生成と仕事中の時間の節約を愛していると思います。日中は多くのクラスとメンバーを作成するgetters必要があり、それらすべてを手動で作成する必要はありません。 タスクはgetters、すべてのクラスメンバーに対して自動的に生成されるプログラムまたは関数を作成することです。 入力 私たちの言語では、オブジェクトは非常に単純です。クラスおよびメンバーの名前は、文字から始まる必要[a-zA-Z]があり、文字のみを含めることができます[a-zA-Z0-9]。以下に例を示します。 class Stack { public overflow; protected trace; private errorReport; } 出力 これは、指定された例に基づいた有効な出力です。 class Stack { public overflow; protected trace; private errorReport; public function getOverflow() { return this->overflow; } public function getTrace() { return this->trace; } public function getErrorReport() { return this->errorReport; } } ゲッター getterメソッドの要件は次のとおりです。 …
13 code-golf  string  syntax  code-golf  math  primes  rational-numbers  code-golf  graphical-output  image-processing  code-golf  kolmogorov-complexity  music  audio  code-golf  string  code-golf  math  geometry  code-golf  math  sequence  combinatorics  code-golf  game  grid  board-game  code-golf  restricted-source  array-manipulation  source-layout  code-golf  base-conversion  binary  code-golf  math  physics  code-golf  math  number  date  expression-building  code-golf  array-manipulation  graph-theory  decision-problem  popularity-contest  error-correction  code-golf  kolmogorov-complexity  geometry  grid  code-challenge  arithmetic  combinatorics  set-partitions  code-golf  kolmogorov-complexity  sequence  fibonacci  code-golf  restricted-source  pristine-programming  code-golf  code-golf  string  kolmogorov-complexity  code-golf  arithmetic  code-golf  string  parsing  code-golf  code-golf  sorting  counting  permutations  3d  code-golf  code-golf  ascii-art  music  code-golf  string  code-golf  string  ascii-art  code-golf  string  code-golf  quine  polyglot  code-golf  math  string  code-golf  internet 

3
パープルインタープリターのゴルフ
パープルインタープリターのゴルフ 紫のは2つの主な目的で設計されたエソランです。 の最小化 Au子の、自己修正可能な1命令言語が十分にないためです。 の可能性を認める 恐ろしく小さなゴルフ通訳者の。適度にフル機能のPython 2インタープリターでの最初のパスはわずか702バイトであり、経験豊富なゴルファーはそこからかなりの量を削ることができると確信しています。 あなたの目標は、この言語の通訳を書くことです。 紫に関する情報: 紫色のプログラムは、プログラムの最初の文字がアドレス0に配置されるように、無限のアドレス可能なメモリアレイに配置される文字のシーケンスです。配列の残りの部分(紫色のプログラムが格納される場所の前後両方)はゼロに初期化されます。 Purpleには、aおよびbおよびiと呼ばれる3つのレジスタがあり、それぞれが符号付き整数を保持でき、ゼロに初期化されます。iは命令ポインターでもあり、常に現在実行中のパープル命令を指します。 各サイクルで、インタプリタは命令ポインタによって示されたメモリ位置から始まる3つの連続した文字のシーケンスを読み取り、このシーケンスをパープル命令として実行しようとします。その後、命令ポインタは常に3ずつ増加します。 構文的には、Purple命令は、「xyz」のような3つの文字(またはそのエンコード)が連続して構成されています。 最初の文字xは次のいずれかです。 abABio これらの記号の意味は次のとおりです。 a - Place the result in register a. b - Place the result in register b. A - Place the result in the location in memory referred to by register a. B - Place …

6
ユニークな乗算スパイラル
これは、カルビンの趣味の最近の乗算表の挑戦に触発されています。 N入力として整数を受け取り、N行N列の一意の乗算スパイラルを出力または返す関数またはプログラムを作成します。コードは(理論上)0から1000の間のNで動作する必要があります(これを出力するのは難しい場合があります)。出力は、次の手順で作成されたテーブルと同等である必要があります。 N行N列の乗算テーブルに入力します。たとえば、N = 3の場合: 1 2 3 2 4 6 3 6 9 左上隅から時計回りにらせん状に進み、訪れた数字に注意してください。すでに訪問した番号にアクセスするときは、0に置き換えます。 いくつかの例を使用すると、より明確になります。 n = 0: 0 n = 1: 1 n = 2: // Spiral order: 1 2 // 1 2 0 4 // 4 3 n = 3: 1 2 3 // 1 2 3 …

24
昇順ASCII、強盗の印刷
これが強盗のスレッドです。警官のスレッドはここに行きます。 copsスレッドのタスクは、印刷可能なASCII文字を昇順で出力するプログラムを作成することでした。強盗タスクは、この出力を生成するために警官が使用したコードを解読することです。 クラックされたコードは、同じ長さで、表示された文字が正しい位置にある限り、同一である必要はありません。言語も同じでなければなりません(バージョン番号は異なる場合があります)。もちろん、出力は同一でなければなりません。警官はコードでコメントを使用できませんが、強盗はコメントを自由に使用できます。 強盗スレッドの勝者は、2016年1月7日までにほとんどの提出物をクラックしたユーザーです。同点の場合、最長の結合コードで提出物をクラックしたユーザーが勝ちます。 提出は次のようにフォーマットする必要があります。 言語、nn文字(回答へのリンクを含む)、警官のユーザー名 コード: alphaprinter 出力 abcdefghijklmnopqrstuvwxyz オプションの説明とコメント。 リーダーボード: アドナンによる圧倒的な勝利! Adnan: 7 Pietu1998: 3 Mitch Schwartz: 2 Quintopia: 2 Martin Büttner: 2 cat: 1 Dennis: 1 insertusernamehere: 1 isaacg: 1 jimmy23013: 1 MegaTom: 1 plannapus: 1 user81655: 1

10
織り交ぜられたソースコード(強盗)を見つける
これが強盗のスレッドです。警官のスレッドについては、こちらをご覧ください。 前書き このCops / Robbersの課題に対して、警官は出力生成プログラムを作成し、それらを一緒に織り込みます。警官のプログラムを分解して、目的の出力を生成するのは、強盗の仕事です。 強盗ルール 強盗は、人々が警官のスレッドへの投稿で投稿するさまざまなプログラムを見つけようとします(上記リンク)。強盗が警官のコードを解決する場合、彼らは分離されたプログラムを投稿し、ここでの回答の出力と一致させ、警官の回答でコードを解読したことを投稿する必要があります。 得点 クラックされた提出物を採点するときに一緒に追加される2つのコンポーネントがあります。 警官の答えで使用されるさまざまなプログラムの数の2乗 織り合わせのバイト数を最も近い2のべき乗に切り捨てます。 例えば、強盗割れた場合TIliGoEnRであるとしてTIGER、およびlion、その後、強盗は2 ^ 2 + 8 = 12点を受け取ります。 強盗の挑戦の勝者は、人々が参加するのに十分な期間の後、最もポイントを獲得した人になります。 (スニペットを手伝いたいのは誰ですか?)

13
正方形の側面の特定
最初のコードゴルフチャレンジへようこそ!:)すぐに飛びましょう。 チャレンジ: O(原点)とT(ターゲット)の2つの浮動小数点ベクトルがある場合、値LとRをSTDOUTに出力するプログラムを作成する必要があります。 Oは正方形の1つの角です Tは、Oの反対側にある正方形の1つの角です。 Lは、不完全な正方形のもう一方のポイントを示す2Dポイント(コーナー)です。 Rは、Lの反対側の2Dポイント(角)です。 ルール OおよびTの値は、STDINから読み取る必要があります(入力例を参照)。 繰り返しますが、LとRの値はSTDOUTに出力する必要があります。 得点とボーナス プログラムのバイトをカウントします。 プログラムがOからL、TからRを結ぶ線を引く場合、バイトカウントから15バイトを引きます。 例 最初の行は入力(Oの場合は最初の角括弧、Tの場合は次の角括弧)をカバーし、他の行は期待される出力を表します。 [0、0] [3、3]期待:[0、3] [3、0] [0、0] [-2、-2]予想:[-2、0] [0、-2] [1、-1] [4、2]予想:[1、2] [4、-1] [0、-1] [0、1]予想:[-1、0] [1、0] 注意:入力と出力は浮動小数点にすることができます! 重要な情報! 値OおよびTは、STDIN(例:[]または()...内)からのものである限り、任意の形式で使用できます。 LとRは任意の順序で印刷できます。 覚えておいてください:(O-> L-> T-> R-> O)が接続されている場合、各辺は同じ長さでなければなりません! 勝ち これはコードゴルフですので、バイトの答えが最も少なくなります! 勝者の回答は、2015年11月15日日曜日20:00-22:00(フィンランド時間)に受け入れられます(私が間違っていなければ、その日付は米国の2015年11月15日のように書かれています。混乱しないでください)。 ハッピーゴルフ!

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