タグ付けされた質問 「code-golf」

コードゴルフは、ソースコードの最小バイトで特定の問題を解決するための競争です。

30
Recamánのシーケンスを生成する
Recamánのシーケンス(A005132)は、次のように定義される数学的シーケンスです。 A(0) = 0 A(n) = A(n-1) - n if A(n-1) - n > 0 and is new, else A(n) = A(n-1) + n 上記のかわいいLaTexバージョン(読みやすいかもしれません): A(n)=⎧⎩⎨0A(n−1)−nA(n−1)+nif n=0if A(n−1)−n is positive and not already in the sequenceotherwiseA(n)={0if n=0A(n−1)−nif A(n−1)−n is positive and not already in the sequenceA(n−1)+notherwiseA(n) = \begin{cases}0 & \textrm{if …

21
集合論を使用したスト​​リングの長さ
ウィキペディアより自然数の集合論的定義 自然数の集合Nは、0を含む最小集合として定義され、S(n)= n defined {n}で定義される後継関数Sの下で閉じられます。 このように定義された最初の数は、0 = {}、1 = {0} = {{}}、2 = {0,1} = {{}、{{}}}、3 = {0,1,2 } = {{}、{{}}、{{}、{{}}}}。 この自然数の定義を使用すると、文字列の長さがカウントされます。 任意の長さのa-zA-Zから文字列を入力します 文字列の長さを区切りなしのセット表記で出力します 例 空の文字列を入力してください 出力 {} 入力 する 出力 {{}} 入力 aaaa 出力 {{} {{}} {{} {{}}} {{} {{}} {{} {{}}}}} 区切り文字付きの「aaaa」の読みやすさの出力は { {} {{}} {{} {{}} } …

1
正規表現が一致する可能性のある文字列の数を評価する
少数の人々とのチャットルームで、正規表現が一致する可能性のある文字列の数について、私と彼らの間で話題が出ました。 あなたの仕事は、その質問に答えることができるプログラムを構築することです。 プログラムは、このドキュメントで「拡張正規表現」として定義されている次のようなすべての正規表現を入力として受け入れます。 ^[A-Za-z0-9]{8}$ そして、その表現に一致する可能性のある文字列の総数を出力し、infinity無限に多い場合は出力します: 218340105584896 正規表現に一致するtoo many2 63 -1を超える可能性のある文字列がある場合、プログラムは出力することもあります。ただし、infinity実際には無限に多くの文字列がない限り、出力してはなりません。 上記を行う最短のプログラムが勝ちです。
20 code-golf 

7
ジュリアでのゴルフのヒント
ジュリアでゴルフをするための一般的なヒントは何ですか?私は、ゴルフの一般的な問題をコード化するのに適用できる、少なくともジュリア特有のアイデアを探しています(たとえば、「コメントの削除」は答えではありません)。
20 code-golf  tips 

2
ユタ州のティーポットを描く
ユタティーポットもともとマーティン・ニューウェルが作成したが、3Dグラフィックスのプログラムをテストするための便利なオブジェクトです。 タスクは、透視投影でティーポットのワイヤーフレーム画像を作成することです。ソースコードアプリケーションのアイデアを促進するために、表示とカメラ制御を分離し、カウントから除外することができます。これにより、パラメーターと入力ファイルを変更し、コードを再利用してさまざまな画像を生成できますが、複雑なコマンドライン引数などを受け入れる本格的なユーティリティを作成する必要はありません。「ハッカー的」なバランスが求められています。 ref。StackOverflow:ユタ州のティーポットでベジェパッチはどのように機能しますか? そのため、ここには3つのサブタスクがあります。 元の形式でティーポットデータを読み込みます。 deCasteljau分割またはその他の方法を使用して、パッチデータを再分割します。他の方法は、ベジエ基底行列を使用して、多項式(フォーリーやファンダム、ニューマンやスプロールなどの標準参照)、またはバーンスタイン基底法(まだ私を超えています)を評価しています。 ポイントが2Dに投影され(言語がネイティブで3Dをサポートしていない場合)、ビューがLookAtポイントを中心とし、垂直軸がティーポットの垂直軸と一致するアイポイントから見た各小さなパッチの輪郭を描きます。 (つまり、見晴らしの良い場所から「直立」して描く)。 ファイルから行指向のテキストデータを読み込むことは少し問題があると仮定すると、この挑戦は本当に得ることについてであるハンズオンバイキュービックベジェパッチデータを持ちます。 背面カリングの単純な通常のテストでは不十分であるため(パッチがすべて外側に向いているわけではありません)、隠線や表面の除去は必要ありません。ワイヤーフレームとして、背中が見える状態でうまく見えるはずです。見た目は、目からの距離に応じて線幅を調整することで改善できますが、これは厳密には必要ありません(自分のプログラムではこれを行いません)。 これはcode-golfとrosetta-stoneの両方です。ゴルフで競合する回答には、通常どおりカウントを含める必要があります。ただし、特別な言語ではない場合でも、通常とは異なる言語での提出を強くお勧めします。 コルモゴロフの複雑さの愛好家には、パッチの回転とミラーリングを追加することで完全なセットを再構築できる、より簡潔なデータセットがあります。また、Jim BlinnのA Trip Down the Graphics Pipelineには、個々のパッチに回転または他の対称性があるという事実を使用した、より簡潔な生成方法があります。体全体(または蓋)は、y軸を中心に回転する単一のベジェ曲線で説明できます。注ぎ口とハンドルは、それらのプロファイルの2つの曲線で記述し、次に、中間の制御点を選択して円形の押し出しを近似できます。

3
JSFuckゴルフ-Hello World
JSFuckは、6文字のみを使用する別の有効なJavascriptプログラムにJavascriptステートメントを正確に再現できる難解な言語です[]()!+。 JSFuckコンバーターは、を入力するとalert("Hello World!")、22,948文字のコードブロックを生成します。プログラムは多くの自動変換を使用してそのブロックを作成したため、手動の最適化を使用してコードを大幅に短縮できると考えています。 あなたのタスクはalert("Hello World!")、文字のみを使用してタスクを実行するJavascriptプログラムを構築すること[]()!+です。そのための最短のコードが優先されます。

6
パターンで奇妙な文字を見つける
入力 最初の行は、特定の文字列が何回も繰り返されます。例えば、それができるabcabcabcabc、[];[];[];等これは、切断されてもよいです。例:1231231231。常に最も短い文字列を見つけます。たとえば、行がの場合、22222文字列は2、ではない22、22222またはその他のものです。文字列は常に少なくとも2回は繰り返されます。 後続のすべての行は、任意の数だけオフセットされたパターンになります。たとえば、次のようになります。 abcabcabc cabcabcab bcabcabca (1オフセット)、または次のようになります。 abcdefabcdefabcdefabc cdefabcdefabcdefabcde efabcdefabcdefabcdefa (4オフセット)。 入力の文字の1つが間違っています。(最初の行にないことが保証されています。)たとえば、次の入力では: a=1a=1a=1 =1a=1a=1a 1a=11=1a= a=1a=1a=1 =1a=1a=1a 13行目は奇数1つのアウトです。 出力 奇数の座標の出力(左上から開始するゼロベース)を出力する必要があります。たとえば、上記の入力では、対応する出力は4,2です。また、出力をしてもよい4 2、または"4""2"、あるいは[[4],[2]]、または任意の他の形式は、限り、あなたは出力が可能になっているものを言うことができるように。 テストケース 入力: codegolfcodegolfco egolfcodegolfcodeg lfcodegolfcodegoff odegolfcodegolfcod golfcodegolfcodego fcodegolfcodegolfc 出力: 16,2 入力: ][[][][[][][[][][[][][[ [][][[][][[][][[][][[][ [][[][][[][][[][][[][][ [[][][[]]][[][][[][][[] 出力: 8,3 入力: ... . . ... 出力: 1,1 入力: ababa babab ababb babab …
20 code-golf 

4
2Dポイントのセットの凸包を見つける
釘のセットを木製の板に打ち込み、輪ゴムを巻き付けると、凸包が得られます。 あなたの使命は、あなたがそれを受け入れることに決めたなら、2Dポイントの与えられたセットの凸包を見つけることです。 いくつかのルール: 関数として記述し、ポイントのリスト座標(任意の形式)が引数です 出力は、任意の位置から開始して、時計回りまたは反時計回りにリストされた凸包内のポイントのリストである必要があります 出力リストは、各ポイントの座標が明確に区別できる合理的な形式にすることができます。(たとえば、1次元のリストではありません{0.1、1.3、4、...}) 凸包のセグメント内の3つ以上のポイントが整列している場合、出力では2つの極値のみを保持する必要があります。 サンプルデータ: サンプル0 入力: {{1, 1}, {2, 2}, {3, 3}, {1, 3}} 出力: {{3, 3}, {1, 3}, {1, 1}} (図は単なる例示です) サンプル1 入力: {{4.4, 14}, {6.7, 15.25}, {6.9, 12.8}, {2.1, 11.1}, {9.5, 14.9}, {13.2, 11.9}, {10.3, 12.3}, {6.8, 9.5}, {3.3, 7.7}, {0.6, 5.1}, {5.3, 2.4}, …

17
三角法を始めましょう!
前書き: 正弦のx式によって与えられます。 sin(x) = x - x^3/3! + x^5/5! - x^7/7! + x^9/9! - x^11/11! // and more follows... 余弦のx式によって与えられます。 cos(x) = 1 - x^2/2! + x^4/4! - x^6/6! + x^8/8! - x^10/10! // and more follows... 仕事: との値を考えるxとn、プログラム出力する(NO関数、等)の値を書き込むsin(x)とcos(x)、正しい点で最大n上記式の条件を。xラジアン単位であると仮定します。 入力: x n 10進数 x( 3桁まで)および整数n。入力は標準入力またはプロンプトダイアログボックスで行う必要があります(言語が標準入力をサポートしていない場合) 出力: [sin(x)] [cos(x)] 両方の値sin(x)とは、cos(x)小数点以下6桁に丸めなければなりません。場合sin(x)である0.5588558855(10桁)、それはに四捨五入する必要があります0.558856 6桁)にます。丸めは、このWiki記事の表の5番目の列「最も近い値に丸める」で説明されているように、最も近い値に行う必要があります。 …
20 code-golf  math 

9
ピサノ時代を見つける
フィボナッチ数列は、各ウェルエントリは、前の2の合計であり、我々はシーケンスが周期的になるだろう定数によって各用語の剰余を取る場合は、最初の2つのエントリが1である、順序を知っています。たとえば、シーケンスmod 7を計算することにした場合、次のようになります。 1 1 2 3 5 1 6 0 6 6 5 4 2 6 1 0 1 1 ... これの周期は16です。ピサノシーケンスと呼ばれる関連するシーケンスa(n)は、nを法として計算されたときのフィボナッチシーケンスの周期であるように定義されます。 仕事 nフィボナッチ数列modの周期を計算して出力するプログラムまたは関数を作成する必要がありますn。これは、Pisanoシーケンスのn番目の項です。 範囲の整数のみをサポートする必要があります 0 < n < 2^30 これはコードとゴルフの競争なので、ソースコードのサイズをバイト単位で最小化することを目指してください。 テストケース 1 -> 1 2 -> 3 3 -> 8 4 -> 6 5 -> 20 6 -> 24 …

14
Playfair暗号化プログラムを書く
2行の入力を受け取り、最初のフレーズをキーフレーズとして使用して、Playfair暗号化技術に従って2番目のフレーズを暗号化するプログラムを作成します。 ウィキペディアではPlayfair暗号化についてある程度詳しく説明していますが、あいまいさを避けるために、簡単な要約を以下に示します。 1.キーテーブルを生成します。 Jキーフレーズ内のすべての出現をで置き換えI、アルファベット以外の文字と繰り返し文字をすべて削除します。5x5暗号化テーブルに挿入し、残りのセルにアルファベットの残りを入力します(ただしJ、;は好きではありませんJ)。 例: S T A C K O V E R F Stack Overflow --> STACKOVERFLW --> L W B D G H I M N P Q U X Y Z 2.暗号化するメッセージを準備する すべてJをで置き換えI、アルファベット以外の文字をすべて削除し、ペアを使用Xして、同じ文字を含むペアを2回分割します。奇数の文字で終わる場合Xは、末尾に追加します。(注:数字がいっぱいにスペルアウトする必要がある- 、ONE、TWO、THREEなど-しかし、あなたは、これはすでにあなたのために行われていると仮定することができます。) 例: In: The cat crept into the crypt, crapped, and crept out …

10
「無料の空白」を活用する
codegolfチャレンジは、プログラムの長さの空白をカウントしないとします。スクリプトを空白にエンコードしてこのシステムをごまかし、埋め込まれた空白をデコードして実行するスクリプトをゴルフします。 例 JBernardoのMeta Golf Challengeに対する私の解決策は、Sage(またはPython)コードを空白にエンコードし、デコーダーをゴルフすることでした。 s = ' ' for c in '<lots of whitespace>'.split(s): s+=chr(len(c)) exec s エンコードは、スクリプトを取得し、改行を追加cし、スクリプト内の各文字について、ord(c)タブを出力し、その後にスペースを続けます。Pythonを使用していsて、スペースでスクリプトを開始するため、改行を前に付ける必要があります。 得点 完全なソリューションには、使用するエンコードの説明(複雑な場合はスクリプトを提供します)、および「デコードと実行」スクリプトが含まれます。スコアは、デコード実行スクリプト内の非空白文字の数です。 空白(言語)は禁止されています さらに、空白文字のみを使用する演算子の完全なセットを持つ言語は許可されていません。最低のゼロ以外のスコアを受け入れます。

15
低すぎるゲームを作るための最短コード-高すぎるゲーム
ゲームを低すぎる---高すぎる(TLTH)最短コード(バイト単位)で作成する必要があります ゲームのルール: コンピューターは整数範囲(-32768..32767)から乱数を選択します。 ここで、数字を考えて入力します。 コンピューターは、選択した番号よりも小さい(TOO LOW)か大きい(TOO HIGH)かを判断します。 数字を推測すると、コンピューターにが表示されますCongrats! You found the number!。 コード規則: 文字を使用しないでくださいT、O、L、W、H、IおよびG文字列または文字リテラルで(小文字でも大文字でもありません)。 例えば: tolower(T); // Acceptable cout<<"T"; // Unacceptable char ch='T'; // Unacceptable ゲームを開始する前にコードでゲームルールを表示できる場合は、300バイトを削除します。 コードで次のようにターン数をカウントし、ゲーム終了時に取得したターン数を表示できる場合は、50バイトを削除します。 "Congrats! You found the number in n turns!" ここで、nは "Congrats! You found the number!" 入力した数値が整数範囲外であることをコードがユーザーに通知できる場合は、スコアから25バイトを削除します。 例えば: Enter the number: 40000 Sorry! This number …
20 code-golf 

30
ランレングスデコード
指定した文字列のランレングスデコードを実行するには、選択した言語で最短のコードを記述します。 文字列は、標準入力で次の形式で入力されます。 CNCNCNCNCNCNCNCN それぞれ C任意の印刷可能なASCII文字である可能性があり、それぞれがN数字である1と9(包括的)。 サンプル入力: :144,1'1 対応する出力: :4444,'
20 code-golf  string 

13
ブルートフォース数独ソルバーを実装する
推測を使用して最短の数独ソルバーを実装します。いくつかのリクエストを受け取ったので、ブルートフォースの数独ソルバーを実装したい人のための代替の質問としてこれを追加しました。 数独パズル: | 1 2 3 | 4 5 6 | 7 8 9 -+----------------------- A| 3 | 1 | B| 6 | | 5 C| 5 | | 9 8 3 -+----------------------- D| 8 | 6 | 3 2 E| | 5 | F| 9 3 | 8 | …

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