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

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

30
連続する1ビットが増加します
ビットのパターン(文字列または配列形式)が与えられた場合: [0,1,1,1,0,1,1,0,0,0,1,1,1,1,1,1] タスクは、任意の数の連続する1ビットを1から始まる昇順の数字シーケンスで置き換えることです。 入力 パターン(文字列または配列として受け取ることができます)例: 文字列: 1001011010110101001 アレイ: [1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1] 出力 昇順の数値シーケンス(文字列または配列として返される可能性があります)例: 文字列: 1 0 0 1 0 1 2 0 1 0 1 2 0 1 0 1 0 0 1 アレイ: …

30
Ot wes thi bist uf tomis
私はこの単純な暗号が大好きです。人間が読むことのできる言葉を読んで、隙間を埋めるのはとても楽しいです... Ot wes thi bist uf tomis, ot wes thi wurst uf tomis, ot wes thi egi uf wosdum, ot wes thi egi uf fuuloshniss, ot wes thi ipuch uf biloif, ot wes thi ipuch uf oncridaloty, ot wes thi siesun uf loght, ot wes thi siesun uf derkniss, ot …

19
ブラケット拡張!
あなたの挑戦は、示されているようにプログラムの入力でいくつかの括弧を拡張することです: 2つの一致する角かっことの間の文字列sを見つけます。閉じ角かっこの後に1桁のnが付きます。[] ブラケットを取り外します。 sをそれ自体でn回繰り返して置き換えます。(nが0の場合、単にsを削除します。) 入力に一致する括弧がなくなるまで手順1に進みます。 追加の規則と説明: 入力を受け取り、許可された手段で出力を行います。 出力の末尾の改行が許可されます。 入力で印刷可能なASCIIのみを処理する必要があります。 すべての括弧が一致する、つまり、入力[]]]]またはを受け取らないことを前提とする場合があります[[[[]。 各閉じ括弧の]後に数字があると仮定できます。 テストケース: Input -> Output [Foo[Bar]3]2 -> FooBarBarBarFooBarBarBar [one]1[two]2[three]3 -> onetwotwothreethreethree [three[two[one]1]2]3 -> threetwoonetwoonethreetwoonetwoonethreetwoonetwoone [!@#[$%^[&*(]2]2]2 -> !@#$%^&*(&*($%^&*(&*(!@#$%^&*(&*($%^&*(&*( [[foo bar baz]1]1 -> foo bar baz [only once]12 -> only once2 [only twice]23456789 -> only twiceonly twice3456789 [remove me!]0 -> before [in …

19
トーン持続時間に基づいてモールス信号を変換します
ゴール モールス信号はしばしば音として表されます。サウンドがオンかオフかを表すビットのストリームが与えられたら、ストリームを文字と数字とスペースに変換します。 仕様 ビットストリームは、ON / OFFビットの繰り返しの長さに基づいて分析されます。 1 ONビットはドットです 3 ONビットはダッシュです 1 OFFビットはドットとダッシュを区切ります 3 OFFビットは文字を区切ります 7 OFFビットは単語(スペース)を区切ります 入力は文字列または配列です。入力では、選択した2つの一意の文字/値のみが許可されます。(例:0/1、true / false、カンマ/スペース) 出力は文字列を返すか、標準出力に出力されます。 例 Input: 101010100010001011101010001011101010001110111011100000001011101110001110111011100010111010001011101010001110101 Analysis: \--H--/ E \---L---/ \---L---/ \----O----/\-- --/\---W---/ \----O----/ \--R--/ \---L---/ \--D--/ Output: HELLO WORLD 仮定 ストリームは常にONビットで開始および終了します。 先頭または末尾の空白はありません。 入力は常に有効です。 すべての文字(大文字と小文字を区別しない)と数字がサポートされています。 テストケース 101010100010001011101010001011101010001110111011100000001011101110001110111011100010111010001011101010001110101 HELLO WORLD 10100000001011100011101110000000101110000000101011101000101000101010001010101 I AM A …
36 code-golf  morse 

22
基本的なASCIIタリー
代替タイトル:壁にあなたの刑務所の文を集計します numberを指定するとn、出力はグループごとに従来の5に、行ごとに50にグループ化されます。 例 1 | | | | 4 |||| |||| |||| |||| 5 |||/ ||/| |/|| /||| 6 |||/ | ||/| | |/|| | /||| | 50 |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ ||/| ||/| ||/| ||/| ||/| ||/| ||/| ||/| ||/| ||/| |/|| |/|| …
36 code-golf  ascii-art  number  code-golf  number  integer  binary  base-conversion  code-golf  array-manipulation  code-golf  chemistry  code-golf  number  sequence  fibonacci  code-golf  matrix  optimization  code-golf  number  code-golf  math  number  sequence  code-golf  math  array-manipulation  matrix  linear-algebra  code-golf  kolmogorov-complexity  cops-and-robbers  cops-and-robbers  code-golf  tips  basic  code-golf  decision-problem  binary  tiling  game  king-of-the-hill  python  code-golf  c  code-golf  ascii-art  code-golf  string  kolmogorov-complexity  alphabet  code-golf  number  code-golf  string  code-golf  number  sequence  integer  code-golf  number  permutations  restricted-complexity  restricted-time 

22
私も偶数しません...私は奇妙なだけです!
タスクは簡単です。整数を入力として受け取り、それが奇数の場合はそれを出力し、それ以外の場合は何もしないプログラムを作成します(停止は許可されません)。課題は、奇数バイトしか使用できないことです。 オプションで、出力に末尾の改行を追加できます。 これはコードゴルフで、(奇数)バイト単位の最短回答が勝ちです。 標準的な抜け穴は禁止されています。さらに、このチャレンジの投稿よりも新しいバージョンの言語を使用することはできません。 入力例>出力例: 13 > 13 42 >

24
ダブルタイムはダブルタイムではありません
この課題に基づいています。 リズムゲームでオス!、難易度修飾子「Double-time」は実際に速度を50%だけ増加させます。 あなたの仕事は、正の偶数(0より大きい)を出力するプログラムを作成することです。ソースコード内の各バイト/文字(選択したもの)が複製されると、1.5倍した数を出力します。 たとえば、ソースコードがABC6を出力する場合、AABBCC9を出力する必要があります。 元のチャレンジのルールに従う: ルール 完全なプログラムを作成する必要があります。 初期ソースは少なくとも1バイトの長さが必要です。 両方の整数は基数10でなければなりません(他の基数または科学表記法で出力することは禁止されています)。 プログラムは入力を受け付けてはなりません(または、未使用の空の入力を持たせてはなりません)。 整数を末尾/先頭のスペースで出力できます。 ソースのコピー間で改行を使用することはできません。 これはcode-golfなので、各言語で最も少ないバイトが勝ちます! デフォルトの抜け穴が適用されます。 これは元の課題よりもささいなことではないと思いますが、創造的でユニークな答えが見つかることを願っています!

15
転倒しますか?
概要 3行の文字列が与えられたら、構造が左に落ちるか、バランスを取るか、または右に落ちるかを判断します。 入力構造 構造は、上部に物が置かれた金属棒であり、すべてが垂直棒の上にバランスが取れていると想像できます。 1 7 4 a =============== | 最初の行はアイテムです。各アイテムの重量は、文字のASCII値から32を引いた値として計算されます(32未満の文字は考慮されず、スペースの重量は0です)。ロッドに対するアイテムの力は、その重量にピボットポイントまでの距離を掛けたものであることに注意してください。 2行目はロッドです。ロッドの各長さは、それ自体で1ユニットの重量があります。この行は排他的に等号(=)です。 3行目はピボットポイントです。これはどこにでも配置でき、複数のスペースとそれに続く単一のパイプ(|)文字で表されます。 例 入力: ===== | 出力:バランス 入力: ===== | 出力:左に落ちる 入力: % ===== | 出力:バランス(%ロッドの左側の重量を打ち消すのに十分な重量があるため) 入力: ああ ======= | 出力:右に倒れます(a右側がピボットポイントからさらに離れているため) 入力: 1 7 4 A =============== | 出力:左に落ちる 入力: 1 7 4 a =============== | 出力:正しく落ちる(小文字が重い!) 入力: $ …

21
(A [l(t [e(r)n] e)s] t)文字列!
Alternestingは、文字列を取得し、それを交互のブラケットにネストする行為です。文字列を変更する方法は次のとおりです。 長さNのストリングの場合、中央のN文字を取り、それらを括弧で囲みます。したがって、文字列がHello world!(12文字)であれば、次のようになります。 (Hello world!) 次に、残りの中央のn-2文字を取り、角括弧で囲みます。この場合、中央の10文字はello worldですので、次の反復は次のようになります。 (H[ello world]!) 限り、文字列の途中で左つ以上の文字があるとして、交互に、最後の2つの手順を繰り返します()と[]。最後の手順は次のとおりです。 (Hello world!) (H[ello world]!) (H[e(llo worl)d]!) (H[e(l[l(o[ w]o)r]l)d]!) 最後の反復では、中央に2文字しか残っていないため、停止します。最後の文字列は (H[e(l[l(o[ w]o)r]l)d]!) 中央の括弧に2つの文字があることに注意してください。これは、入力の長さが偶数の場合に発生します。入力の長さが奇数の場合(たとえば、Hello, world!コンマが追加されている場合)、中央に1文字しかありません。 (H[e(l[l(o[,( )w]o)r]l)d]!) 今日の課題では、入力として文字列を受け取り、それを変更して新しい文字列を出力するプログラムまたは関数を作成する必要があります。任意の妥当な形式で入出力を行うことができます。入力は常に少なくとも1文字の長さで、印刷可能なASCIIのみが含まれます。入力に括弧や角括弧が含まれないことも想定できます。従来の言語の場合、これはそれほど重要ではありませんが、一部の難解な言語では簡単になります。 いつものように、これはコードとゴルフのコンペティションであるため、選択した言語で可能な限り最短の回答を作成してください。楽しむ! テストIO #Input #Output "Alternesting is fun!" --> (A[l(t[e(r[n(e[s(t[in]g) ]i)s] )f]u)n]!) "PPCG" --> (P[PC]G) "Code-golf" --> (C[o(d[e(-)g]o)l]f) "4 8 15 16 23 42" --> …

30
カラスとタクシー
現在位置から水平方向にAマイル、垂直方向にBマイル離れた地点に移動することを想像してください。または言い換えると、から(0, 0)に移動します(a, b)。あなたはどこまで旅行する必要がありますか?これは簡単な質問のように思えますが、答えはあなたが尋ねる人によって異なります。あなたがカラスであり、カラスが飛ぶように移動できる場合、移動距離はユークリッド距離になり(a, b)ます。これは sqrt(a^2 + b^2) しかし、あなたが退屈な人間なら、それほど遠くまで歩きたくないので、タクシーに乗る必要があります。ほとんどのタクシーは、一般的に道路に留まろうとするため、目的地に向かって直線で運転することはありません。したがって、実際に移動する距離は、垂直距離と水平距離の合計になります。または、式は次のとおりです。 abs(a) + abs(b) これはTaxicab Distanceと呼ばれます。この図は、2つの違いをうまく示しています。 に移動するため(6, 6)に、カラスは緑の線の上を飛ぶことができ、これにより6 * sqrt(2)約8.49の距離が得られます。タクシーは赤、青、または黄色の道を取ることができますが、すべて12になります。 これは私が尋ねている本当の質問につながります。カラスとタクシーの両方がポイントから出発し、ポイント(0, 0)に移動する場合(a, b)、タクシーの経路はどれくらい長くなりますか?または、より多くの数学の専門用語では、 2次元のベクトルが与えられた場合、ベクトルのnorm2とベクトルのnorm1の差を求めます。 この質問に答えるには、最短のプログラムまたは関数を作成する必要があります。「a」と「b」を2つの別々の入力として、または2つのアイテムのタプルとして選択できます。任意の適切な形式で入力および出力を取得できます。差が整数でない場合は、少なくとも小数点以下2桁まで正確である必要があります。 「a」と「b」は整数であり、両方とも0にはならないことを常に想定できます(ただし、どちらかがゼロになる可能性はあります) いつものように、標準の抜け穴が適用され、プログラムをバイト単位で可能な限り短くしようとします。 コードがどのように機能するかについての説明を投稿し、バイトを節約するために使用されるクールなトリックを実証する回答を支持します。 コードをテストするための例を次に示します。 #input #output 3, 4 2 -3, 4 2 -3, -4 2 6, 6 3.51 42, 0 0 10, 10 5.86 3, 3 1.76 ゴルフをお楽しみください!:)

21
元の番号
ガイドライン シナリオ ジョンには重要な数があり、他の人に見られたくない。 彼は、次の手順を使用して番号を暗号化することにしました。 彼の番号は常に非減少列である(すなわち。"1123") 彼は各桁を英語の単語に変換しました。(つまり"123" -> "ONETWOTHREE") そして、文字をランダムに並べ替えます。(つまり"ONETWOTHREE" -> "ENOWTOHEETR") ジョンはそうすることで彼の番号が安全であると感じました。実際、このような暗号化は簡単に解読できます:( 仕事 暗号化された文字列sが与えられたら、あなたの仕事はそれを解読して元の番号を返すことです。 ルール これはコードゴルフであるため、バイト単位の最短回答が優先されます 入力文字列は常に有効であると仮定できます 入力文字列には大文字のみが含まれています 元の番号は常に昇順で配置されます 文字列または整数形式で数値を返すことができます 文字は、文字列全体ではなく、1つの単語間でのみシャッフルされます。 数字は1〜9(ONEからNINE)までです。 可能なスクランブルされていない文字列 以下は、数字から文字列に変換された直後の文字列のリストです。 1 -> ONE 2 -> TWO 3 -> THREE 4 -> FOUR 5 -> FIVE 6 -> SIX 7 -> SEVEN 8 -> EIGHT 9 -> …

30
空白の視線の群衆
問題 入力がない場合、次の文字列を出力または返すプログラムまたは関数を作成します。 (<(<>(<>.(<>.<(<>.<>(<>.<>)<>.<>)>.<>).<>)<>)>) ルール 最短のプログラムが勝ちます。 末尾の空白が許可されます。 末尾の改行が許可されます。 許可されている関数の未使用のパラメーター。

30
;#コードを生成する
関連:;#インタープリターを作成する 上記のリンクされた挑戦で、タスクは難解な言語のための通訳を作成することでした;#。 ;#言語 この言語には正確に2つのコマンドがあります:;および#(他のすべての文字はインタープリターによって無視されます): ;:アキュムレーターをインクリメントします #:アキュムレータを127でモジュロし、対応するASCII文字を出力し、アキュムレータを0にリセットします。 チャレンジ 私は怠け者ですが、さらにテストケースをテストしたいので、プレーンテキストを;#コードに変換するプログラムまたは関数が必要です。 入力 入力は文字列であり、引数として、またはstdinを介して取得されます。印刷可能なASCII文字と改行のみが含まれます。 出力 出力は、;#stdoutに戻るか、印刷して生成されたプログラムです。プログラムが有効である限り、それ以外の余分な文字が含まれている場合が#あり;、他のすべての文字は無視されます。 例 Input: Hello, World! Output: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;# Input: ABC Output: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;# Input: ;# Output: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;# リーダーボード コードスニペットを表示 var QUESTION_ID=122139,OVERRIDE_USER=73772;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return …

26
奇妙な偶数、正の負
Nが与えられた場合、この無限シーケンスのN番目の項を出力します。 -1 2 -2 1 -3 4 -4 3 -5 6 -6 5 -7 8 -8 7 -9 10 -10 9 -11 12 -12 11 ... etc. Nは、必要に応じて0インデックスまたは1インデックスの場合があります。 入力後、0がインデックスたとえば、0、1、2、3、4それぞれの出力を生成しなければなりません-1、2、-2、1、-3。 次いで、1インデックスを入力した場合1、2、3、4、5それぞれの出力を生成する必要があり-1、2、-2、1、-3。 明確にするために、このシーケンスは、正の整数のシーケンスを2回繰り返して生成されます。 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 …

30
2を3に置き換えます
正の整数nが与えられた場合、その素因数分解を行い、のすべての因子を2で置き換えるコードを記述し3ます。 例えば 12 = 2 * 2 * 3 -> 3 * 3 * 3 = 27 これはコードゴルフなので、目標は回答のバイト数を最小限にすることです。 テストケース 1 -> 1 2 -> 3 3 -> 3 4 -> 9 5 -> 5 6 -> 9 7 -> 7 8 -> 27 9 -> 9 10 -> 15 11 …

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