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

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

30
ビットランランダウン
整数を指定するとn > 0、バイナリ表現の、0または1そのバイナリ表現の最長連続シーケンスの長さが出力されます。 例 6110バイナリで書かれています。最長のシーケンスは11なので、返す必要があります2 16→ 10000→4 893→ 1101111101→5 1337371→ 101000110100000011011→6 1→ 1→1 9965546→ 100110000000111111101010→7

3
審美的に楽しい除数ツリーを構築する
美的に満足できる除数ツリーは、n任意の合成数に対して、の平方根に最も近い除数mのペアである2つの子ノードを持つ入力の除数のツリーです。左ノードはのより小さな除数で、右ノードはのより大きな除数でなければなりません。ツリーの素数には、子ノードがないはずです。あなたのツリーは、テキストアートまたは画像の形式である場合があります。テキストアート出力のルールは次のとおりです。mmm 間隔ルール ツリー上のノードの間隔を空けるために、次のルールがあります。 ルートから所定の深さにあるノードはすべて、出力の同じテキスト行にある必要があります。 / \ NOT / \ / \ / 3 2 3 2 左側のノードでは、ノードが1桁の数字の場合、着信ブランチは右上になければなりません。そうでなければ、最後の数字のすぐ上になります。例: /および/ 3 720 正しいノードの場合、ノードが1桁の数字である場合、着信ブランチは左上になければなりません。それ以外の場合、最初の数字のすぐ上にあります。例: \および\ 7 243 出ていく左の枝の場合、枝は番号の左側に1スペースを開始する必要があります。例: 275 / 11 出て行く右の枝の場合、枝は数字の右に1スペースを開始する必要があります。例: 275 \ 25 ツリーの同じレベルにある2つのノードの間には、少なくとも2つのスペースが必要です。同時に、ツリーの同じレベルにある2つのサブツリーは、それらの間のスペースをできるだけ少なくする必要があります。 **サブツリー**が近すぎるため、このツリーは機能しません。 504 / \ / \ / \ / \ 21 24 / \ / \ / …

30
点滅する12
多くの電子機器、特に古いものは12:00、時間が設定されていないと点滅します。この課題の目的は、これを再現することです。 具体的には、タスクがする表示12:00と--:--無限ループに代わり。 期間は、 0.5秒の二つの期間に均等に分割し、1秒、であるべきです。ここで、「1秒」と「均等」は大まかに解釈できます。たとえば、結果の期間が1秒より少し長くなる場合でも、文字列の表示の間にコードが0.5秒間停止する場合は許容されます。最初の文字列を表示する前の最初の一時停止は許容されます。 それぞれの新しい文字列は、のいずれかによって表示することができ、元の文字列を置き換えるか、新しい行に。新しい文字列がそれぞれ異なる行にある場合、連続する文字列の間に空行があってはならないことを除いて、末尾の空白は許可されます。 バイト単位の最短コードが優先されます。

24
入力文字ごとにプログラムの最初の位置を出力します
チャレンジ p空でない入力文字列が与えられると、空でないプログラム/関数を記述します。これは、のソースコードでの各文字の最初の出現s位置を出力します。sp たとえば、プログラムが main() { cout << magic << cin } ^0 ^5 ^10 ^15 ^20 ^25 そして、それは入力を受け取りabcd{、出力は [1, x, 9, x, 7] (0-based) [2, x, 10, x, 8] (1-based) ここでは、x文字位置のための有効な出力ではありません任意の出力を表し(例えば、負の数、0あなたは1ベースのインデックスを使用している場合は、NaN、Inf、文字列potato、あなたのプログラムの長さよりも数の大きい、など)。 制限事項 ソースコードの読み取りは許可されていません(適切なクインのように)。コメントの使用は許可されますが、スコアにカウントされます。 入力と出力は、合理的な形式で行うことができますが、でなければならない明確な(唯一の追加区切り文字、無randストリームと答えがそこにどこかにあると主張)、一貫性のある(例えば、x上からは常にあるべき同じ値)と人間読めます。たとえば、文字列または文字配列。入力は、印刷可能なASCII文字の文字列(または配列)であると想定できます。Unicodeセット全体を処理する必要はありません。 コード内のカスタムコードページまたは印刷不可能なASCII 言語でカスタムコードページ(Jelly、APLなど)を使用している場合は、それを考慮する必要があります(したがって、プログラム€æÆは入力の[1, x, 2]ために出力する必要があります€%æ)。-1(入力がASCIIのみであるため)常に非ASCII文字のみを使用して出力することは、有効な解決策ではありません。プログラムがネイティブにカスタムコードページを受け入れると仮定できます。つまり、プログラムに文字Aを整数に変換する方法65(ASCIIエンコーディング)がある場合、コードページの65番目の文字をに変換すると仮定できます65。 次の課題に触発されました:ポジショナルアウェアネス

30
コードゴルフの質問の難易度を計算する
ブリーフィング コードゴルフの質問の難易度は、次のように計算できます。 v質問の視聴回数はどこですか そして、a質問があり回答数です そして⌈ X ⌉は天井演算子。 また: この質問の現在の難易度:*** 仕事 2つの整数を取り(v and a)、難易度をで出力するプログラムを作成しasterisks (*)ます。 入力は、配列、分離された文字列、または分離された関数引数の形式にすることができます テストデータ Views Answers Difficulty Program Output 163 2 2 ** 548 22 1 * 1452 24 1 * 1713 37 1 * 4162 32 2 ** 3067 15 3 *** 22421 19 10 ********** 擬似コードを使用した例 …
43 code-golf  math 

4
コンピューター生成のひびの入った土
0から65535(2 16 -1)までの整数を取り込んで、ひび割れた土のこれらの6つの実生活の画像に可能な限り類似したユニークな 500 x 500ピクセルの画像を生成するプログラムを作成します。 これらはサムネイルです。クリックすると、フルサイズの500×500画像が表示されます。 ここでの目標は、コンピューターで生成された画像を可能な限りフォトリアリスティックにすることです。したがって、理想的には、プログラムによって出力された画像のいずれかが上記の6つの画像と混合されている場合、初めて画像を見る人は実際の画像とは別にコンピューターで生成された画像を見分けることができません。 しかし、完璧なフォトリアリズムは難しいので、できる限りのことをしてください。これは人気コンテストであるため、より現実的な出力をもつ回答がより多く支持され、勝つ可能性が高くなります。 ルール 画像処理関数またはライブラリを使用できます。 あなたは6枚のサンプル画像から収集された情報に自分のアルゴリズムの基礎かもしれないが、あなた65536(2 16)の可能な出力画像は、互いに視覚的に区別可能であるべきであると特にクラックの配置に関して、サンプル画像。既存の写真から選択範囲を回転および変換するだけでなく、画像を本当に生成する必要があります。 それ以外の場合は、出力をハードコーディングしないでください。汎用アルゴリズムを使用する必要があり、65535を超える数値は理論的に有効な出力を生成するはずです。(私はそれを小さな最大整数型に対応するためだけに制限しました。) 入力整数は、ランダムなひびの入った土壌の出力画像を生成するシードと考えることができます。ただし、決定論的である必要があるため、同じ入力の結果は常に同じ出力になります。 出力画像は、正確に500×500ピクセルでなければなりません。 出力画像は、一般的な画像ファイル形式で保存することも、単に表示することもできます。 回答には、いくつかの出力画像の例と、それに対応する入力番号を必ず含めてください。 最も投票数の多い答えが勝ちです。投票者は、もちろん、6つのサンプルに類似した画像を作成しようとする回答に賛成票を投じ、規則に違反するか一貫性のない結果を与える回答に反対票を投じるべきです。 6つのサンプル画像はtexturelib.comから取得されました。割れた土壌の2つの大きな画像から1000 x 1000ピクセルの領域を選択し、500 x 500にサイズ変更しました。プログラムでこれらの大きな画像の分析を使用できますが、出力は選択した6つのサンプル画像を明確に模倣する必要があります。

30
アウトゴルフできますか?(強盗セクション)
強盗セクション 警官のセクションはここにあります。 チャレンジ あなたの仕事は、同じ言語と同じバージョン(たとえば、Python 3.5 ≠ Python 3.4)で警官の提出をアウトゴルフすることです。これは許可されていません。バイト単位の長さが元のサブミッションより短い場合、サブミッションはアウトゴルフされます。提出物をクラックするために、少なくとも1バイトだけゴルフをする必要があります。たとえば、タスクが2× nを実行することであり、提出が次の場合: print(2*input()) 次の操作を行うことにより、警官を追い抜くことができます。 print 2*input() またはこれも(ラムダが許可されているため): lambda x:2*x これを次のヘッダーで投稿します。 ##{language name}, <s>{prev byte count}</s> {byte count}, {cop's submission + link} 例えば: パイソン2、16 12バイト、アドナン(提出に+リンク) lambda x:2*x A005843を計算します(オフセット= 0)。 その場合、提出物をクラックしました。 得点 最も多くの提出物をクラックした人が勝者です。 ルール クラックの提出は、警官の提出と同じ言語である必要があります。 同じ入力が同じ出力になります(a(2)= 4は4のままです)。 Pythonなどの言語の場合、その言語に標準で含まれているライブラリをインポートできます。(したがって、numpy / sympyなどはありません) 入力と出力は両方とも10進数です(基数10)。 注意 このチャレンジは終了しました。Robbersセクションの勝者はfeersumです。CnRの最終スコアは以下のとおりです。 feersum:16クラック デニス:12クラック …

19
私のパイは二等分されましたか?
正の整数の空でないリストを取り込むプログラムまたは関数を作成します。"1 2 3 4"またはなどの合理的で便利な形式で入力されていると想定できます[1, 2, 3, 4]。 入力リストの数値は、円グラフ全体のスライスを表します。各スライスサイズは対応する数値に比例し、すべてのスライスは指定された順序でグラフの周囲に配置されます。 たとえば、次のパイ1 2 3 4は次のとおりです。 あなたのコードが答えなければならない問題は、円グラフが今までされてい二分しますか?つまり、円の一方の側から他方の側に完全に直線があり、対称的に2つに分割されていますか? あなたはする必要があり、出力truthyの少なくとも一つの二等分線と出力がある場合に値をfalsy何も存在しない場合、値。 で1 2 3 4例との二分がある4 1と2 3出力truthyであろうように。 ただし、入力の1 2 3 4 5場合は二等分線がないため、出力は偽になります。 追加の例 数値を異なる方法で配置すると、二等分線が削除される場合があります。 例2 1 3 4→偽: 入力リストに数字が1つしかない場合、パイは二等分されません。 例10→偽: 複数の二等分線が存在する場合があります。ゼロ以上である限り、出力は真実です。 例6 6 12 12 12 11 1 12→真実:(3つの二等分線があります) 視覚的に明らかではない場合でも、2分割が存在する場合があります。 例1000000 1000001→偽: 例1000000 1000001 1→真実: (円グラフを生成してくれたnces.ed.govに感謝します。) テストケース …
43 code-golf  math  arithmetic  combinatorics  decision-problem  code-golf  sequence  number-theory  binary  code-golf  number-theory  set-theory  code-golf  hashing  code-golf  game  card-games  code-golf  ascii-art  code-golf  arithmetic  array-manipulation  jelly  code-golf  string  array-manipulation  code-golf  sorting  code-challenge  code-golf  number  date  binary  code-golf  arithmetic  code-golf  math  number  linear-algebra  polynomials  code-golf  ascii-art  code-golf  grid  decision-problem  code-golf  string  combinatorics  code-golf  string  kolmogorov-complexity  arithmetic  date  code-golf  number  data-structures  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation 

10
ジグザジフ行列
JPEG標準は、圧縮アルゴリズムの一部として、交互の方向の対角線に沿って行列を展開してベクトルにします。 あなたのタスクは、マトリックス(必ずしも正方形ではない)を取り、展開された形で返すことです。例として: [1 2 3 4 5 6 7 8 9 1 2 3] 降るべきです [1, 2, 5, 9, 6, 3, 4, 7, 1, 2, 8, 3] ルール 行列要素はより小さい正の整数であると仮定でき10ます。 プログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、STDOUT(または最も近い代替)、関数の戻り値または関数(out)パラメーターを介して結果を出力できます。 入力マトリックスは、便利で曖昧さのないネストされたリストまたは文字列形式で、または両方のマトリックス次元と共にフラットリストとして指定できます。(または、もちろん、あなたの言語がそれらを持っているなら、マトリックス型として。) 出力ベクトルは、任意の便利で明確なフラットリストまたは文字列形式にすることができます。 標準のコードゴルフ規則が適用されます。 テストケース [[1]] => [1] [[1 2] [3 1]] => [1 2 3 1] [[1 2 3 1]] …

18
ユニバーサルスプーキーミームトランスレーター
前書き エイリアンは、私たちと同じくらいミームを愛しています。ただし、これまでに遭遇したすべてのエイリアンレースには、独自のバージョン2spooky4me(次の質問を参照)と同等のバージョンがありますが、いくつかのバリエーションがあります。惑星CUTE1fの住民は大量のスプークを処理できないため、優先される1spooky2meスプークはです。一方、skeletor7のメマーはスプークが好きなので、使用する傾向があります9spooky11me。 チャレンジ ミームの翻訳は大変な仕事なので、あなたはこれらの人々がmemenetに正しくアクセスするのを助けるために、普遍的なミーム翻訳者を書くことを任されました。あなたのプログラムは、ミームとそのミームの数字列に適用する変換を受け入れて、異なる惑星の住民に適切なものにします。 入力 プログラムは2つの文字列入力を受け取ります。 入力ミーム(例2spooky4me)。一致し[a-zA-Z0-9]+ます。 (例えば、それに適用する変換+1から行くために、2spooky4meに3spooky5me)。マッチ[+\-*/^]\d+(あなたが受け入れなければならない+、-、*、/、および^演算子として、関係なく、あなたの言語でのネイティブ表現)。 出力 プログラムは、入力ミームの数字シーケンスに適用された変換を使用して、文字列出力(標準出力または同等のものに出力)を返す必要があります。奇妙な出来事では、これまでに遭遇したすべての種族が分数のものよりも整数のミームを好むため、これらの変換は整数演算を実行する必要があります(たとえば、1spooky1me /2結果は0spooky0me)。 例 標準の算術演算が適用されます: Input: 2spooky4me +1 Output: 3spooky5me Input: 2spooky4me -1 Output: 1spooky3me Input: 2spooky4me *15 Output: 30spooky60me Input: 10spooky900me /5 Output: 2spooky180me 数字列は整数です。整数の切り捨ては、次のような場合に発生するはずです。 Input: idontunderstandmemes3 /2 Output: idontunderstandmemes1 入力には数字列がない場合があります。 Input: notreallyafunnymeme *100 Output: notreallyafunnymeme 選択した言語のネイティブ操作ではない場合でも、累乗をサポートする必要があります。 Input: 2spooky4me ^3 Output: …

9
ルービックとのサイクリング
ルービックキューブを無造作にひねりながら、息子は解かれた状態に戻っていることに気付きました。彼はこれが最初はブードゥー教の魔法だと思っていたと思いますが、同じ動きのシーケンスを繰り返し続けると、常に元の状態に戻ると説明しました。最終的に。 もちろん、子供の頃、彼は自分で試してみて、トリッキーだと思った「ランダムな」シーケンスを選択する必要がありました。彼は10回ほど繰り返した後にトラックを失い、何回それを繰り返さなければならないかを尋ねました。彼が使用しているシーケンスを知らなかったので、私は知らなかったが、調べるためのプログラムを書くことができると彼に言った。 ここがあなたの出番です。もちろん、私はただ何かを上げることができますが、彼は自分でそれを入力したいと思います。彼はまだ非常に高速なタイピストではないので、可能な限り短いプログラムが必要です。 目的 ターンのシーケンスが与えられた場合、キューブを元の状態に戻すために実行する必要がある最小回数を出力します。これはコードゴルフなので、最小バイトが勝ちます。プログラムまたは関数を作成でき、他のすべての通常のデフォルトが適用されます。 入力 入力は、文字列、リスト、または言語に適した他の形式として取得される一連の移動です。文字列形式の場合は、移動の間にセパレータを自由に使用できます(または使用しません)。 考慮に入れなければならない6つの「基本的な」動きとその逆があります。 R - Turn the right face clockwise L - Turn the left face clockwise U - Turn the up (top) face clockwise D - Turn the down (bottom) face clockwise F - Turn the front face clockwise B - Turn the back …

9
砂時計の挑戦
砂時計 この砂時計には60個の「砂」があり、各部屋を完全に満たします。時計は幅19文字、高さ13文字です。各チャンバーには5列の砂があり、中央に1列の砂を保持できる列があります。上の列には17個の砂、次の砂には15個の砂を保持できます(以下を参照)。砂は1秒間に1枚の割合で底部チャンバーに落ちます。 START 3 SECONDS LATER 38 SECONDS LATER ███████████████████ ███████████████████ ███████████████████ █.................█ 17 █.............. █ 14 █ █ 0 ██...............██ 15 ██...............██ 15 ██ ██ 0 ███.............███ 13 ███.............███ 13 ███....... ███ 7 █████.........█████ 09 █████.........█████ 09 █████.........█████ 09 ███████.....███████ 05 ███████.....███████ 05 ███████.....███████ 05 █████████.█████████ 01 █████████.█████████ 01 …

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
Game of Lifeをそれ自体で実行するコード
グリッドに配置されたときにConwayのGame of Lifeを実装する、それぞれ幅w文字、高さh文字の2つの長方形のコードブロックを記述します。(wとhは任意の正の整数です) たとえば、2つのコードブロックは次のようになります:(実際のコードではなく、w = 3、h = 2) XX| --+ そして | --+ Game of Lifeの「生きている」セルのように最初のブロックを扱い、「死んだ」セルのように2番目のブロックを扱います。 次に、これらの2つのブロックの複数のコピーを、このグライダーなどのGame of Lifeグリッドを表す大きなプログラムに配置します。 | | | | | --+--+--+--+--+ | |XX| | | --+--+--+--+--+ | | |XX| | --+--+--+--+--+ |XX|XX|XX| | --+--+--+--+--+ | | | | | --+--+--+--+--+ | | | | | --+--+--+--+--+ …

30
本当のスリムな日陰
できるだけ少ないバイト数で次の内容をエコーし​​ます。 I'm Slim Shady. Yes, I'm the real Shady. All you other Slim Shadys are just imitating. So, won't the real Slim Shady please stand up? Please stand up. Please stand up. 次の5つの単語が表示される必要があります正確に一度、あなたのコード内で: I'm Slim Shady real stand

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