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

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

27
正多角形の面積を計算する
整数が与えられた場合、nここで3 <= n < 2^32、n1のapothemを持つ通常の-gonの面積を計算します。の式はn * tan(π / n)です。悪魔が何であるかを知らない人のために: 正多角形のアポテムは、中心からその辺の1つの中点までの線分です。 n-gon の領域を小数点以下8桁以上の浮動小数点として出力します。 テストケース 3 5.1961524227 6 3.4641016151 10 3.2491969623 20 3.1676888065 99 3.1426476062 1697 3.1415962425 15000 3.1415926995 注:上記のテストケースには、出力に必要な数字より2桁多く含まれています。

14
シークレットスワッピングシーケンスの検索
これは警官と強盗の挑戦です。強盗のスレッドはこちらにあります。 タスクは、OEISシーケンスを出力するコードを記述し、コードにシーケンスの名前を含め(A______)、コード内のシーケンスの名前が2番目のシーケンスの名前に変更されたときに2番目の別個のシーケンスを出力します。 HaskellのA000217およびA000290で機能する例を次に示します。 f x|last"A000217"=='0'=x^2|1>0=sum[1..x] オンラインでお試しください! 次に、2つのシーケンスのうちの1つと、2番目のシーケンスを秘密にするコードを明らかにします。強盗は隠されたシーケンスが何であるかを理解しようとします。強盗がなんとかしてシーケンス(または基準に合った別のシーケンス)を決定できた場合、解答は解読されます。回答が投稿されてから1週間以内に回答がない場合は、回答を安全とマークし、検証のための目的のソリューションを明らかにすることができます。 安全な答えを解読することはできません。 入出力 ここから撮影 コードは、標準入力メソッドを介してnを取得し、OEISページで指定されたインデックスによってインデックス付けされたシーケンスのn番目の用語を出力する関数または完全なプログラムです。 そのシーケンスのOEIS bファイルで提供されるすべての値をサポートする必要があります。bファイルにない数値はサポートする必要はありません。 得点 スコアはコード内のバイト数になり、バイト数が少ない方が良いでしょう。

30
配列からランダムに選択する
この課題はかなり単純です。 正の(0を含まない)整数の配列が与えられ、この配列からランダムな要素を選択する必要があります。 しかし、ここにひねりがあります 。要素を選択する確率は整数の値に依存します。つまり、整数が大きくなると、要素が選択される確率も大きくなります。 例 配列が与えられ[4, 1, 5]ます。 4を選択する確率は、4を配列内のすべての要素の合計で割ったものに等しくなり4 / ( 4 + 1 + 5 ) = 4 / 10 =40%ます(この場合)。 1を選択する確率は1 / 10または10%です。 入力 正の整数の配列。 出力 メソッドを使用している場合は選択した整数を返すか、に直接出力しますstdout。 ルール これはコードゴルフなので、どの言語でもバイト単位の最短コードが優先されます。 標準的な抜け穴は禁止されています。

4
最も効率的な培養器
通常、コードを手動で記述するのは面倒です。あなたの課題は、ASCIIテキストをCubicallyソースコードに変換することです。 キュビック これは、Cubicallyの簡単な概要です。リポジトリには、より完全なガイドと詳細を持っています。 Cubicallyは、私が少し前に書いた、使用するのが苦痛になるように設計されたエゾランです。2つのメモリ、3x3x3ルービックキューブと「メモ帳」と呼ばれるレジスタが含まれています。 記憶 内部ルービックキューブは次のように初期化されます。 000 000 top face 000 111222333444 left, front, right, and back faces, respectively 111222333444 111222333444 555 555 down face 555 右面を時計回りに90°回転すると、メモリキューブは次のようになります。 002 002 002 111225333044 111225333044 111225333044 554 554 554 コマンド 非整数文字はデフォルトのコマンドを設定します。デフォルトのコマンドが再度設定される前の各整数に対して、その整数でコマンドが実行されます。たとえば、5でx524y312コマンドxを実行し、2でコマンドyを実行し、4でコマンドを実行し、3でコマンドを実行し、1でコマンドを実行し、2でコマンドを実行します。 コマンドが使用する整数は、フェイスインデックスを表します。したがって、UP(0インデックス)面でx0実行xします。x1行うであろうxようにLEFT(1-インデックス付き)面上に、そして。 でコマンドを6実行すると、メモ帳の値に対してそのコマンドが実行されます。6を超える整数でコマンドを実行すると、エラーが発生します。 コマンドの例を次に示します。 R1 -内部の立方体が上の2番目の例のようになるように、右の面を時計回りに90°回転 R11 -右面を時計回りに90°に2回回します。 R2 +0 -UPフェイスのすべての値をメモ帳に追加します +000 -UPフェイスのすべての値をメモ帳に3回追加します …

21
番号をリストする
実数が与えられたら、それをリストのリストに変換します。負符号(ある場合)は空のリストになり、整数部は数字のリストになり、小数部(ある場合)は数字のリストになります。数字は文字列ではなく、実際の数字でなければなりません。 例 0 → [[0]] 123 → [[1,2,3]] -123 → [[],[1,2,3]] 123.45 → [[1,2,3],[4,5]] 0.45 → [[0],[4,5]] -0.45 → [[],[0],[4,5]] -123.45 → [[],[1,2,3],[4,5]]
19 code-golf  number 

30
2つの配列のベストを取得
浮動小数点数の2つの配列が与えられます。あなたの仕事は、2つの配列の対応する要素をペアにし、各ペアの最大値を取得することです。ただし、2つの対応する要素が等しい場合は、代わりにそれらの合計を取る必要があります。 たとえば、リスト[1, 3, 3.2, 2.3]とを指定すると[3, 1, 3.2, 2.6]、次のことを行う必要があります。 要素(またはzip)をペアリングします[[1, 3], [3, 1], [3.2, 3.2], [2.3, 2.6]]。 各ペアを調べて、上記のプロセスを適用します[3, 3, 6.4, 2.6]。 スペック 配列/リストの長さは常に同じです。ただし、空の場合があります。 あなたがそれを乱用しない限り、それらに含まれる数字は常にあなたの言語の能力に適合します。正、ゼロ、または負の場合があり、すべてのタイプを処理する必要があります。 バイトカウントの削減に役立つ場合は、リストの長さを入力として使用することもできます。 ルール これはcode-golfであるため、バイト単位の最短回答が優先されます。 標準の入力および出力ルールが適用されます。妥当な形式で入力(および出力)を取得できます。 デフォルトの抜け穴は禁止されています。 テストケース Array_1、Array_2->出力 []、[]-> [] [1、2、3]、[1、3、2]-> [2、3、3] [1、3、3.2、2.3]、[3、1、3.2、2.6]-> [3、3、6.4、2.6] [1,2,3,4,5,5,7,8,9,10]、[10,9,8,7,6,5,4,3,2,1]-> [10、9、 8、7、6、10、7、8、9、10] [-3.2、-3.2、-2.4、7、-10.1]、[100、-3.2、2.4、-7、-10.1]-> [100、-6.4、2.4、7、-20.2]

22
特定の値の多項式のn番目の反復を計算します。fⁿ(x)
多項式関数f(たとえば、昇順または降順の実係数のリストp)、非負の整数n、および実数値xが与えられると、次を返します: f n(x) すなわち、の値F(F(F(... F(X用)...)))NのアプリケーションFにX。 妥当な精度と丸めを使用します。 係数のリストとしてfを使用するソリューションがおそらく最も興味深いでしょうが、fを実際の関数として使用できる場合は(このチャレンジを些細な「関数をn回適用」することで軽減できます)、自由に含めることができます。自明でない解決策の後。 事例 p = [1,0,0]またはf = x^2、 n = 0、 x = 3: f 0(3)=3 p = [1,0,0]またはf = x^2、 n = 1、 x = 3: f 1(3)=9 p = [0.1,-2.3,-4]またはf = 0.1x^2-2.3x-4、 n = 0、 x = 2.3: f 0(2.3)=2.3 p = [0.1,-2.3,-4]またはf …

19
3つの三角形の数字[閉じた]
閉じた。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善したいですか?詳細を追加し、この投稿を編集して問題を明確にします。 2年前に閉店。 説明 これらの数値に関しては、以前にもかなり多くの課題がありましたが、このうちの1つでもないことを願っています。 nは三角数回目には、最大のすべての自然数の和と等しいnは、簡単なものを。ウィキペディアのページとOEISには、さらに情報を提供したい人のためのエントリーがあります。 さて、ガウスは、すべての自然数が3つの三角形の数(これらを含む0)として表現できることを発見しました0 + 1 + 1 = 2。 チャレンジ あなたの仕事は、自然数(を含む0)が与えられたプログラムまたは関数を書くことで、引数に合計される3つの三角形の数を出力します。スペースで区切られた数字を配列として、または好きな方法で印刷できます。ただし、組み込み関数を使用して、配列、範囲、または三角形の数のリストを含むコレクションの他の形式(範囲を生成する単一のアトムなど)を直接取得することは禁止されています。 テストケース 9 -> 6 + 3 + 0 or 3 + 3 + 3 12 -> 6 + 6 + 0 or 6 + 3 + 3 or 10 + 1 + 1 13 -> …

14
MU番号を計算する
最初の2つのMU番号は2と3です。他のすべてのMU番号は、まだ現れていない最小の番号であり、2つの以前の別個のMU番号の積として正確に1つの方法で表現できます。 ここに最初の10があります 2, 3, 6, 12, 18, 24, 48, 54, 96, 162 仕事 正の数が与えられたら、n番目のMU 数を計算して出力します。 これはコードとゴルフの競争なので、ソースコードをできるだけ小さくすることを目指してください。 OEIS A007335

30
頭字語を生成する
これは、頭字語の作成と似ていますが、頭字語の取得方法や、柔軟な出力を含むこの課題など、いくつかの重要な違いがあります。 仕事 印刷可能なASCIIのみを含む文字列(chars / length 1文字列のリストが許可されます)が与えられた場合、スペースまたはダッシュが前にあるか、入力の最初の文字である入力のすべての大文字を出力します。空の文字列は未定義の動作です。 テストケース: 出力は、の形式であってもよく"TEST"、["T","E","S","T"]あなたのために、または任意の他の作品。 Self-contained Underwater Breathing Apparatus SUBA a Programming Language PL NATO Atlantic TREATY Organization NATO DEFCON 2 D hello, world! light-Emitting dioDe E What Does the Fox Say? WDFS 3D mov-Ies I laugh-Out Lou-D OLD Best friends FOREVE-r BF -- <space> -- --a …
19 code-golf  string 

15
ルービックキューブアルゴリズムの反転
ルービックキューブで移動するたびに、最初の移動を取り消す逆方向の移動があります。このため、すべてのアルゴリズム(一連の移動)には、最初のアルゴリズムを元に戻す逆アルゴリズムがあります。 この課題の目標は、特定のアルゴリズムの逆を見つけることです。 仕様: 入力は、個々の動きの配列で構成されます。各移動は長さ1または2の文字列です。もちろん、言語で最も意味のある入力形式を使用できます。各移動は、構造XまたはX'またはX2で構成されXます。ここで、は大文字または小文字です。 逆にするにはX、単にに置き換えX'ます。同様に、にX'なりXます。X2一方、変更されません。 出力を作成するには、各移動を逆にしてから、配列を逆にします。 例(スペースで区切られた文字列): R => R' D U' => U D' S T A C K => K' C' A' T' S' A2 B2 => B2 A2 得点: これはコードゴルフなので、バイト数が最も少なくなります。標準の抜け穴は許可されていません。

3
ハドロンに名前を付ける
チャレンジ 入力として粒子のクォーク組成が与えられると、対応するハドロンの名前を出力します。 クォークは大文字で、反クォークは小文字で表されます。 クォークの順序は任意ですが、必ずしも以下に示す順序ではありません。 組み込み関数では、粒子やクォークに関するアクセスデータは許可されません。 与えられる唯一のクォークは、U(アップ)、u(アンチアップ)、D(ダウン)、d(アンチダウン)、S(ストレンジ)、s(アンチレンジ)、C(チャーム)、c(アンチチャーム)、B(ボトムまたはビューティー)、b(ボトムまたはアンチビューティー)。 ハドロンとそのクォーク構成のリスト ペンタクォークやグルーボールなど、他にもさまざまなハドロンがありますが、次のリストにあるハドロンのみをサポートする必要があることに注意してください。 バリオン(QQQ)および反バリオン(qqq) 括弧内の名前は、パーティクルの代替名です。どちらの名前を出力してもかまいません。 Input - Output UUU - delta++ uuu - antidelta++ UUD - delta+ (proton) uud - antidelta+ (antiproton) UDD - delta0 (neutron) udd - antidelta0 (antineutron) DDD - delta- ddd - antidelta- UUS - sigma+ uus - antisigma+ UDS - sigma0 …

30
冗長ブール
前書き 古典的に、ブール値は1ビットです。trueまたはfalse、1または0。先行ゼロは単に冗長になります。たとえば、001とは、00001またはと同じことを意味し1ます。 32ビットのブール値 真/偽の値を指定すると、同等の32ビットブール値を文字列として出力します。(または、何らかの理由で言語が先行ゼロをサポートしている場合は数値として。) あなたのプログラムは、すべての真実/偽のタイプに対して機能する必要はありません。あなたのプログラミング言語が最適に機能するものだけです。 例I / O Input >> Output truthy >> 00000000000000000000000000000001 falsey >> 00000000000000000000000000000000 これはcode-golfなので、最低バイトが勝ちです!
19 code-golf  string 

10
SQLセレクト番号範囲
の数の範囲を行として達成するのは非常に難しいことがわかりましたMySQL。 たとえば、1〜5の範囲は以下によって達成されます。 SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 結果は次のとおりです。 1 2 3 4 5 0-99の場合、2つの0-9テーブルをクロス結合できます。 CREATE TABLE nums as SELECT 0 as num UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION …
19 code-golf  tips  syntax  sql 

14
連続番号なしで1からnまでカウントする
ゴール 整数n(n > 1)が与えられます。あなたは、出力がどのように多くの整数の順列必要1にnそこから開始され1、最後にn、そして1によって異なる2つの連続した整数を持っていません。 あなたが完全グラフを取る場合は別の方法として、K_nパスのエッジを削除し1-2-3-...-nますからハミルトン路をカウントしなければならない1とn、残りのグラフインチ 例では、有効な順列の数f(n)を取り込んでn出力する関数を使用しますが、提出は関数またはプログラムの場合があります。 例 の場合n = 6、可能な解決策は1-3-5-2-4-6 ただし、1-3-5-2-6-4はで終わらないため、有効なソリューションではありません6。 実際、にはn = 6、2つのソリューションしかありません(1-4-2-5-3-6もう1つです)。 したがってf(6) = 2。 以下のためn = 4に起動のみ順列1と終了で4ある1-2-3-4と1-3-2-4。両方で、2はに隣接し、31だけ異なる連続した整数を与えます。したがってf(4) = 0。 テストケース f(6) = 2 f(4) = 0 f(8) = 68 f(13) = 4462848 勝利基準 これはコードゴルフで、最短の答えが勝ちです。

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