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

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

30
100日間のカウントダウン
イベントの100日前にカウントダウンを開始するのが一般的ですが、これはおそらくベース10システムが原因です。これの例はどこでも見つけることができます: 誕生日までの100日間 結婚式までの100日 選挙までの100日 卒業まで100日 期日まで100日 サッカーシーズンまでの100日間 Fanaticバッジを取得するまでの100日間 写真が撮れます。イベントが開催される100日前は、実際のイベントに次いで2位であるようです。ですから、この挑戦​​のために、私は100日後の日付が何であるかを知る必要があります。そうすれば、カウントダウンを始めるべきものを決めることができます。 入力 入力なし 出力 標準のグレゴリオ暦に基づく現在の日付から100日後の日付(うるう年を考慮してください)。出力は限り日付形式があると柔軟性があり、人間の読み取り可能な(例えば2016-10-8、10-8-16、[ 2016, 10, 8 ]、10/8/16 12:00:00 AM)。 勝ち コードゴルフ:バイト単位の最短コード 例 今日から100日(2017年4月5日)は、2017年7月14日金曜日です。 Current Future ------- ------ 01/01/2001 +100 04/11/2001 01/01/2004 +100 04/10/2004 01/01/1900 +100 04/11/1900 01/01/2000 +100 04/10/2000 07/04/2017 +100 10/12/2017 10/31/2017 +100 02/08/2018 12/25/2017 +100 04/04/2018 08/29/1941 +100 …
25 code-golf  date 

22
再帰的な文字列置換
タスク 3つの文字列を指定してA, B, C、Binの各インスタンスがでA再帰的に置換された出力文字列を生成するプログラムまたは関数を記述しCます。再帰的に置換とは、各ステップで重複しないBinのすべてのインスタンスA(左から右に貪欲に選択)がに含まれなくなるCまで置換を繰り返すことを意味BしAます。 入出力 I / Oにはデフォルトのメソッドを使用できます。 文字列には、印刷可能なASCII文字のみが含まれます(また、それらのいずれかが含まれることもあります)。 B一方で、空の文字列になることはありませんAし、Cかもしれません。 文字列はプレーンテキストとみなされます。たとえば、扱うことはできません B。、正規表現パターンとして。 入力の一部の組み合わせは終了しません。これらの場合、プログラムは何でもできます。 テストケース これらは次の形式です。 A/B/C\nOutput Hello, world!/world!/PPCG Hello, PPCG Uppercase is up/up/down Uppercase is down ababababa/aba/ccc cccbcccba delete/e/{empty string} dlt {empty string}/no/effect {empty string} llllrrrr/lr/rl rrrrllll +-+-+-+/+-+/+ + ababababa/aba/bada badabbadbada abaaba/aba/ab abb ((())())())/()/{empty string} ) 終了しない例: grow/ow/oow loop/lo/lo
25 code-golf  string  substitution  code-golf  math  code-golf  string  set-theory  code-golf  code-golf  compile-time  code-golf  kolmogorov-complexity  binary  code-golf  sequence  cops-and-robbers  code-golf  subsequence  card-games  code-golf  sequence  primes  code-golf  code-golf  number  graphical-output  music  code-golf  ascii-art  code-golf  string  lambda-calculus  code-golf  string  code-generation  code-golf  unicode  code-golf  math  combinatorics  code-golf  balanced-string  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-challenge  fastest-code  chess  code-golf  math  graphical-output  code-golf  string  hello-world  animation  code-golf  number  arithmetic  code-golf  integer  code-golf  code-golf  combinatorics  code-golf  kolmogorov-complexity  graphical-output  code-golf  string  code-golf  code-golf  game  code-golf  math  combinatorics  code-golf  ascii-art  popularity-contest  random  code-golf  arithmetic  number-theory  integer  code-golf  tips  underload  code-golf  math  sequence  primes  code-golf  math  path-finding  code-golf  ascii-art  primes  code-golf  kolmogorov-complexity  alphabet 

11
二分木フラクタル
今日の課題は、この例のような美しいascii-artとしてバイナリツリーを描くことです。 /\ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ /\ /\ / \ / \ / \ / \ / \ / \ / \ / \ …


14
壊れたCAPSLOCK KEY FIASCO
従業員の中には、Capslockキーが壊れているため、交換するには安すぎます。作業を修正するために可能な限り短いプログラムを作成して、彼らを助けてください!与えられた文字列の各文字を大文字から小文字に、またはその逆に単純に変換します...しかし、ひねりがあります! クリスマスも大興奮です!したがって、Christmas(大文字と小文字を区別しない)シーケンス内の文字を修正しない小さな「バグ」を残すことになります。 入力 入力には、0x20〜0x7e(- ~)の改行とASCIIを含む単一の文字列(またはバイトの配列)を使用します。文字列にキャリッジリターンやその他の文字が含まれていることを心配する必要はありません。 出力 出力には、大文字と小文字が入れ替わった文字列のみが含まれている必要があります(そしてもちろんクリスマスのバグです!)。末尾に空白を1つまで含めることができます。 クリスマスバグ 例でこれを説明しましょう。 Input: i CAN HARDLY WORK LIKE THIS please GET ME A NEW KEYBOARD FOR cHRISTMAS Output: I Can HaRdly work lIke thiS PLEASE geT Me A new keyboard for ChriStmas canクリスマスの最初の文字である「c」が含まれているため、変更されません。の次の文字Christmasは「h」で、これはhardly(「r」も含む)であるため、変更されません。Christmasコードはそこに到達するまでに実際に探しているため、変更されません。「c」ではなく「s」。 シーケンスが見つかったら、「c」から最初からやり直し、もう一度繰り返しChristmasます。そのChristmasChristmasままにしておきます。 テストケース Input: Hello World! Output: hELLO wORLD! Input: I …
25 code-golf  string 

16
クリスマスクラッカーミステリー電卓
プレゼントが開かれました。ミンチパイが食べられました。スターウォーズが視聴されています。クリスマスシーズンが終わりつつあります。今までに、あなたはいくつかのクリスマスクラッカーを引いたかもしれません。運がよければ、通常の役に立たないプラスチックのおもちゃの代わりに、あなたはあなたの友人や親relativeを驚かせるミステリー電卓を獲得したかもしれません。 このトリックは、6枚のカードで構成され、それぞれに数字の4x8グリッドが印刷されています。各カードには、整数の異なるサブセットが含まれています[1,63]。マジシャンは、1枚のカードから番号を選び、その番号を秘密にしておくように求めます。次に、魔術師はどのカードにその番号があるかを尋ねます。その知識があれば、魔術師は推測された元の数を魔法のように決定して開示することができます。 6枚のMystery Calculatorカードの完全なセットを次のように正確に出力します。 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 - - - - - - - - - - - 2 3 6 …

21
「0xUsernames」の変換
0xユーザー名 メッセージングサービスを使用しているユーザーが非常に多いため、すべてのユーザー名を保存するためのスペースが不足しています。これを修正するために、可能であれば16進数としてユーザー名の保存を開始します。 ユーザー名が文字のみで構成されている0123456789ABCDEF場合(大文字と小文字は区別されません)、16進数に変換して整数として保存できます。たとえば、ユーザー名ba5eba11は0xBA5EBA11、16進整数として解釈できます。 しかし、どう05AB1Eですか?先行ゼロがあり、これは失われます。そのため、ユーザー名を変換するときは常に1、整数として読み取る前に必ずaを追加します。 チャレンジ あなたの仕事は、空でないユーザー名を文字列として与えられたユーザー名を 'hexa-compresss'するプログラムまたは関数を書くことです: 16進整数として解釈できる場合は、1を先頭に追加し、16進数として解釈し、結果を10進数として出力します。 それ以外の場合は、変更されていない文字列を返します。 これはcode-golfなので、最短のソリューション(バイト単位)が勝ちです!組み込みのベース変換関数が許可されています。 テストケース 結果の整数は、言語の標準整数範囲内にあると想定できます。 ほとんどのメッセージングシステムのユーザー名と同様に、入力文字列には英数字とアンダースコアのみが含まれます。 1変換する前に必ず先頭を追加する必要があることを忘れないでください! "ba5eba11" -> 7421737489 "05AB1E" -> 17148702 "dec0de" -> 31375582 "Beef" -> 114415 "da7aba5e" -> 7960443486 "500" -> 5376 "DENNIS" -> "DENNIS" "Garth" -> "Garth" "A_B_C" -> "A_B_C" "0x000" -> "0x000" 参考のために、テストケースに使用したPython 3の実装を以下に示します(変更なし)。 import re def convert_name(name): …

15
文字列の線形回帰
この課題は少し難しいですが、文字列を指定するとかなり簡単sです: meta.codegolf.stackexchange.com 文字列内の文字の位置をx座標として、ASCII値をy座標として使用します。上記の文字列の場合、結果の座標セットは次のようになります。 0, 109 1, 101 2, 116 3, 97 4, 46 5, 99 6, 111 7, 100 8, 101 9, 103 10,111 11,108 12,102 13,46 14,115 15,116 16,97 17,99 18,107 19,101 20,120 21,99 22,104 23,97 24,110 25,103 26,101 27,46 28,99 29,111 30,109 次に、線形回帰を使用して、収集したセットの勾配とy切片の両方を計算する必要があります。上記のセットをプロットします。 これにより、(0インデックス付き)の最適な行が得られます。 y = 0.014516129032258x + …
25 code-golf  string  math 

20
アスキーリスクを描く
アスタリスクを使用した図形の描画に関する質問が豊富にあるため、アスタリスクが非常に多いため、ASCIIテーブルを使用して1つ描画する必要があると考えました。 チャレンジ あなたの仕事は、入力をまったく受け取らず、この正確なテキストを出力するプログラムまたは関数を書くことです。 ! "# $% &' () *+ ,- ./ 01 23456789:;<=>?@ABCDEF GHIJKLMNOPQRSTUVWXYZ[ \]^_ `a bc de fg hi jk lm no pq rs tu vw xy z{ |} ~ 参考のために、このサイトには完全なASCIIテーブルがリストされています。 ルール 上記のように、出力は正確なテキストである必要があります。先頭または末尾の空白は許可されます。 標準的なゴルフの抜け穴が適用されます-インターネットなどからこのASCIIリスクを読み取ることはできません。 これはcode-golfであるため、最短のソリューション(バイト単位)が優先されます。

2
動物をダウンゴート化!
私のDowngoatアバターにはいくつかの明確な機能があります ただし、これらの機能は他の動物にも適用できます。 仕様 動物の画像(技術的には何でもかまいません)を指定すると、Downgoatプロパティを適用する必要があります。 境界ピクセルは、画像の最も外側のピクセルです。 背景色は、境界ピクセルで最も一般的な色として定義されます。その色が(r、g、b、a)色として解釈され、[0、256)からの各チャネルで、背景は、指定されたピクセルのすべてのチャネルが「背景色」。 プロセス: 背景とすべての透明ピクセルを#232323に設定しますRGBA(35, 35, 35, 1.00) 背景ではないすべてのピクセルを設定し#FC0D1B、RGBA(252, 13, 27, 1.00)。 画像を垂直に反映 -1画像の中央にArialフォントのテキストを追加します。テキストの全高は、画像の最小寸法の25%でなければなりません(つまりmin(width, height) * 0.25)。 ルール フォントが既にインストールされていると仮定してお気軽に しきい値はになるはず50ですが、この数値を入力として使用することもできます。ただし、これを行うためのバイトカウントの減少はありません。 I / O形式に関する質問については、画像I / Oのデフォルトを参照してください。 画像は常に3x3以上のサイズになります 最も一般的な「境界ピクセルの色」がない場合、「背景色」として使用する境界ピクセルの色は重要ではありませんが、これは一貫している必要があります。 例 入力: 出力: 入力: 出力: 入力: 出力: 入力: 出力: 入力: 出力: 他の例? オンライン実装は、vihan.org / p / downgoatify / #50から入手できます。 これはコードゴルフなので、バイト単位の最短コードが優先されます。がんばろう!

2
Palindrome-Polyglot-Quineを書く
あるプログラム:「palipolyquine」書くQUINE、ポリグロット、および回文を。 ルール: ポリグロット言語の数は、コードサイズよりも望ましいです。 同点の場合、最短回答(バイト単位)が勝ちです。 ポリグロットとクインのルールについては、ポリキンを記述してください。 私の例(私はテストのあるFreaky-Sourcesリポジトリを持っています): C#/ Java(1747バイト): /**///\u000A\u002F\u002A using System;//\u002A\u002F class Program{public static void//\u000A\u002F\u002A Main//\u002A\u002Fmain (String[]z){String s="`**?`@#_^using System;?_#^class Program{public static void?@#_^Main?_#main^(String[]z){String s=!$!,t=s;int i;int[]a=new int[]{33,94,38,64,35,95,96,63,36};String[]b=new String[]{!&!!,!&n!,!&&!,!&@!,!&#!,!&_!,!`!,!?!,s};for(i=0;i<9;i++)t=t.?@#_^Replace?_#replace^(!!+(char)a[i],b[i]);t+='*';for(i=872;i>=0;i--)t=t+t?@#_^[i];Console.Write?_#.charAt(i);System.out.printf^(t);}}/",t=s;int i;int[]a=new int[]{33,94,38,64,35,95,96,63,36};String[]b=new String[]{"\"","\n","\\","\\u000A","\\u002F","\\u002A","/","//",s};for(i=0;i<9;i++)t=t.//\u000A\u002F\u002A Replace//\u002A\u002Freplace (""+(char)a[i],b[i]);t+='*';for(i=872;i>=0;i--)t=t+t//\u000A\u002F\u002A [i];Console.Write//\u002A\u002F.charAt(i);System.out.printf (t);}}/*/}};)t( ftnirp.tuo.metsyS;)i(tArahc.F200u\A200u\//etirW.elosnoC;]i[ A200u\F200u\A000u\//t+t=t)--i;0=>i;278=i(rof;'*'=+t;)]i[b,]i[a)rahc(+""( ecalperF200u\A200u\//ecalpeR A200u\F200u\A000u\//.t=t)++i;9<i;0=i(rof;}s,"//","/","A200u\\","F200u\\","A000u\\","\\","n\",""\"{][gnirtS wen=b][gnirtS;}63,36,69,59,53,46,83,49,33{][tni wen=a][tni;i tni;s=t,"/}};)t(^ftnirp.tuo.metsyS;)i(tArahc.#_?etirW.elosnoC;]i[^_#@?t+t=t)--i;0=>i;278=i(rof;'*'=+t;)]i[b,]i[a)rahc(+!!(^ecalper#_?ecalpeR^_#@?.t=t)++i;9<i;0=i(rof;}s,!?!,!`!,!_&!,!#&!,!@&!,!&&!,!n&!,!!&!{][gnirtS wen=b][gnirtS;}63,36,69,59,53,46,83,49,33{][tni wen=a][tni;i tni;s=t,!$!=s gnirtS{)z][gnirtS(^niam#_?niaM^_#@?diov citats cilbup{margorP ssalc^#_?;metsyS gnisu^_#@`?**`"=s gnirtS{)z][gnirtS( niamF200u\A200u\//niaM …

30
時計の挑戦の時です!
次の形式で時間を表示する時計を作成してください。 18 ---------- 19 -------------------------------------------------- これは「18:10」を表示します。現在の時間と次の時間が行の先頭に表示され、その後にスペースとダッシュの数が続きます。最初の行にはこの時間で経過した分数、2行目はあと何分かを示しますこの時間に行きます。 明確にするために 時計はシステムの時刻を表示する必要があります。別のソースから時間を取得する方が便利な場合は、それでも問題ありません。それはないかもしれません、入力として供給すること。 で18:00、トップラインがちょうどある18(末尾のスペースが必要な許可はありません) で18:59、一番下の行は、19 - 10時間未満は、0(01 -----)で事前に埋め込まれるか、右揃え( 1 -----)でます。左揃えの1桁は、ダッシュが正しい場所から始まっている場合でも1 -----無効です(無効です)。 時計は24時間形式で時間を表示する必要があります。 24h形式と呼ばれていますが、実際にはありません24。23時間目の間に、2行目は00または 0ます。 表示は少なくとも1分間に1回更新する必要がありますが、正確に00数秒で更新する必要はありません。それがより便利な場合は、より頻繁に/継続的に更新できますが、結果はもちろん判読可能でなければなりません-画面全体に1つのスミアはありません。 入力 なし。 出力 上記のように。クロックを60桁の位置に埋め込むための末尾のスペースは両方の行で許可されますが、末尾の改行も許可されます。 次の分を表示するときは、画面をクリアする必要があります:clear-screenコマンドを使用するか、30行以上の改行を追加します。 追加のルール 標準的な抜け穴は禁止されています code-golf、バイト単位の最短回答が勝ちます。

30
大きな数字:超階乗
この質問は修正されました。もう一度お読みください。 Ultrafactorials 超階乗は、次の関数を使用して生成できる一連の数値です。 a(n) = n! ^ n! 結果の値は非常に急速に上昇します。 サイドノート:これは、OEISのエントリA046882です。ハイパーファクターも関連しています。これはまだ非常に巨大ですが、少し小さいシーケンスです:A002109 あなたのタスク あなたの仕事は、これらの数字をあなたの言語に実装することです。プログラムは、すべての超階乗の合計を 0から包括的に計算します nます。 入力 プログラムは、入力に1つだけ入力できます。これは、合計に追加される最後のa(n)超階乗に似ています。入力は確実に正または0になります。 出力 数字の合計がどこかにある限り、出力はすべてあなた次第です。 ルール すべての整数、つまり整数入力を想定し、整数カウントループを使用して結果を生成できます。 テストケース Input: -1 Output: Any kind of error (because -1! is undefined), or no handling at all Input: 0 Output: 1 Input: 1 Output: 2 Input: 2 Output: 6 Input: …

30
階乗の合計
課題は、数値の階乗の桁合計を計算することです。 例 Input: 10 Output: 27 10!= 10×9×...×3×2×1 = 3628800、および数字10の数字の合計!3 + 6 + 2 + 8 + 8 + 0 + 0 = 27 入力は0より大きい整数であることが期待できます。出力はどのタイプでもかまいませんが、答えはコーディング言語の標準ベースである必要があります。 テストケース: 10 27 19 45 469 4140 985 10053 注意一部の言語では、32ビット整数を超える大きな数値をサポートできません。これらの言語では、大きな階乗を計算することは期待されません。 マーティン・エンダーのおかげでここにOEISリンク これはcode-golfなので、文字の中で最も短いコードが勝ちです!

9
Praming Puzles&Colf:Condense a String
このサイトで少し時間を過ごして、できるだけ短いものを楽しむようになりました。これが、同じ文字を複数回含む文字列に最近気分を害した理由かもしれません。あなたの仕事は、次のルールに従って特定の文字列を圧縮する関数またはプログラムを書くことです。 0-condensationで開始します。つまり、同じ文字の最初(左端)のペアを探し、その間に他の文字はありません。そのようなペアが見つかった場合、2つの文字のいずれかを削除し、別の0-condensationを実行してアルゴリズムを再起動します。そのようなペアが見つからない場合は、次の手順に進みます。例: programming-C0-> programing aabbcc-C0-> abbcc test-C0->test 次に1凝縮を実行します。つまり、同じ文字の最初のペアを探し、その間に他の1つの文字があります。そのようなペアが見つかった場合、それらの1つとそれらの間のすべての文字を削除し、0-condensationで再開します。そのようなペアが見つからない場合は、次の手順に進みます。例: abacac-C1-> acac java-C1->ja 凝縮がいくつかの文字を削除した後に再起動するたびに、nが元の文字列の長さである2凝縮などをn 凝縮まで続けます。例:-C2-> -C3-> programingpraming abcdafgafg 結果の文字列は凝縮と呼ばれ、各文字が最大1回含まれます。 入力: 印刷可能なASCII文字の小文字の文字列。 出力: 凝縮上記ルールに従って文字列。 例: examples -> es programming -> praming puzzles -> puzles codegolf -> colf andromeda -> a abcbaccbabcb -> acb if(x==1):x++ -> if(x+ fnabnfun -> fun abcdefae -> abcde アルゴリズムの仕組みを明確にする詳細な例: …
25 code-golf  string 

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