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

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

5
正方形のデラコルテ数を計算する
課題:任意の言語でデラコルテ数の計算を実装します。最短のコードが優先されます。 異なる整数1..n²(少なくとも3〜27の間の可能な辺の長さn)の特定の正方行列の場合、そのデラコルテ数は、gcd(a、b)×distance²(a、b)の積の合計です。各個別整数のペア{a、b}。 次の例は、160のデラコルテ数を持つ3×3の正方形を示しています。 3 2 9 4 1 8 5 6 7 この正方形には、計算する36の異なるペアがあります。たとえば、ペア4と6です。gcd(4、6)× 距離 ²(4、6)= 4 テスト用の別の正方形の例-これには、5957のデラコルテ番号があります。 10 8 11 14 12 21 4 19 7 9 5 13 23 1 16 18 3 17 2 15 24 22 25 6 20 デラコルテ番号は、このプログラミングコンテストから取得されます -詳細については、こちらをご覧ください...コンテストは2015年1月に終了しました。とても楽しかったです! ルール: 必要な改行は1文字としてカウントされます。改行付きのゴルフソリューションを投稿できますが、その言語で必要な場合にのみカウントされます。 入出力の処理方法を選択でき、標準インクルードやメイン関数ヘッダーなど、言語の必要なフレームワークを数える必要はありません。このC#の例のように、実際のコードカウント(ショートカット/エイリアス定義を含む)のみ: namespace System { …
12 code-golf  math 

8
トロールの通行料を計算して安全に通過する
/puzzling//q/626に触発された あなたの冒険では、あなたが渡らなければならない一連の7つの橋に到着します。各橋の下にはトロルが住んでいます。橋を渡るには、最初にトロールにいくつかのケーキを運んでいるケーキの数の割合として与える必要があります。これらは親切なトロルであるため、一定数のケーキをあなたに返します。 毎日の初めに、地元のトロール王は、各旅行者が支払う必要のあるケーキ税の割合と、トロールケーキの払い戻し-各トロールが旅行者に返さなければならないケーキの数を設定します。 あなたの仕事は、その日に与えられた条件で7つのトロル橋すべてを通過するために必要なケーキの最小数を計算することです。 仮定: 2つの入力パラメータ:ケーキ税率(0〜100の整数)、およびトロールケーキの払い戻し。 誰も、トロルでさえ、ケーキを別のトロルに部分的に食べて欲しくない。ケーキの一部が残っている場合、トロールはそれを取得します。 トロルがケーキ税を受け入れても、すべてのケーキを返さなければならない場合(以前と同じか少ないケーキが残っている)、怒ってあなたとあなたのケーキを食べます。 すべてのトロールは、少なくとも1つの完全なケーキを保持する必要があります。 最大100個のケーキしか持てません。 あなたが現在いる、または7つの橋すべての反対側にいる日を終わらせる必要があります。 チャレンジ: 現在の日に移動するケーキの最小数を出力する完全なプログラムを作成するか、今日安全に移動できない場合はゼロを出力します。明日の数字がわかるまでお待ちください。 入力は、stdin、コマンドライン引数、またはファイル入力として渡す必要があります。 最短のコード(バイトカウント)が優先されます。 例: 25%のケーキ税、2トロールケーキの払い戻し。 トロール1の前に19個のケーキから開始: トロール1の後の(19 * 0.75)= 14.25 :(14 + 2)= 16 トロール2の前:(16 * 0.75)= 12 トロール2の後:(12 + 2)= 14 等 19ケーキ-> 16-> 14-> 12-> 11-> 10-> 9-> 8 18ケーキ-> 15-> 13-> 11-> 10-> 9-> 8-> …
12 code-golf 

4
1日のタイムラインの不確実性
ある朝、目覚ましで目覚めたが、スヌーズすると、さらに8分間眠ることができたとします。再び鳴ったら、しぶしぶ起きてシャワーを浴びます。これには15〜17分かかります。その後、正確に2分間歯を磨き、服を着ます。これには約3〜5分かかります。最後に、急いで朝食を6〜8分で食べてドアを使い果たします。 このタイミングシーケンスを次のように示すことができます。 8 15-17 2 3-5 6-8。 あなたの朝のルーチンの不確実性を考えると、あなたが最初に目を覚ましてから特定の分数で各タスクを行っていた確率は何ですか? すべてのタスクに整数分かかると仮定すると、不確実な時間範囲の可能な組み合わせをすべてグラフ化できます(たとえば、歯を磨くのに3、4、5分)。このチャートには、27の可能性がすべて示されています。時間は右に増加し、N分ごとのタスクは(N-1)ダッシュと1つの垂直バーで表され、終了を示すだけです。文字間に微小な境界が生じるため、8との間のスペース9はに8 min 59 sec変わり9 minます。 1111111111222222222233333333334 1234567890123456789012345678901234567890 <-- Minute -------|--------------|-|--|-----| -------|--------------|-|--|------| -------|--------------|-|--|-------| -------|--------------|-|---|-----| -------|--------------|-|---|------| -------|--------------|-|---|-------| -------|--------------|-|----|-----| -------|--------------|-|----|------| -------|--------------|-|----|-------| -------|---------------|-|--|-----| -------|---------------|-|--|------| -------|---------------|-|--|-------| -------|---------------|-|---|-----| -------|---------------|-|---|------| -------|---------------|-|---|-------| -------|---------------|-|----|-----| -------|---------------|-|----|------| -------|---------------|-|----|-------| -------|----------------|-|--|-----| -------|----------------|-|--|------| -------|----------------|-|--|-------| -------|----------------|-|---|-----| -------|----------------|-|---|------| -------|----------------|-|---|-------| -------|----------------|-|----|-----| -------|----------------|-|----|------| -------|----------------|-|----|-------| 1234567891111111111222222222233333333334 <-- Minute 0123456789012345678901234567890 ルーチンが最大で40分、少なくとも34分かかった可能性があることは明らかです。 問題は、特定の瞬間、たとえば29分に、5つのタスクのそれぞれを行っていた可能性はどれくらいかということです。不確実な各時間枠は、正確な分全体に均一に分布していると仮定します。したがって、4〜7のタスクでは、25%の確率で4、5、6、または7分間かかります。 …

11
1つのシーケンスを作成する
整数のシーケンスは、このシーケンス内の連続する2つの数値の差が-1または1で、その最初の要素が0の場合、1シーケンスです。 より正確には:a1、a2、...、anは次の場合に1シーケンスです。 For any k (1 ≤ k < n): |a[k] - a[k+1]|=1, a[1]=0 入力 n -シーケンス内の要素の数 s -シーケンス内の要素の合計 出力 可能であればn、要素の合計を含む長さの1シーケンスセット/リスト/配列/などs 空のset / list / array / etc不可能な場合 例 入力の8 4場合、出力は[0 1 2 1 0 -1 0 1]またはになり[0 -1 0 1 0 1 2 1]ます。他の可能性があるかもしれません。 入力の3 5場合、出力は[]実行できないため、空です。 ルール これはコードゴルフで、バイト単位の最短回答が勝ちです。提出物はプログラムまたは機能でなければなりません。入出力は、標準的な方法のいずれかで指定できます。

3
9ホールのコードゴルフ-キックオフ
すでに9ホールチャレンジ(およびここでもう1つ)がありましたが、昨年はすっごくやりました。それに加えて、私はたった2ヶ月しかいませんでした(それは永遠に思えますが)。そして、それはかなり異なっています。 リーダーボード:(穴の重み付けはまだ確立されていないことに注意してください) +---------------+------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+ |Competitor | Language | Hole 1 | Hole 2 | Hole 3 | Hole 4 | Hole 5 | Hole 6 | Hole 7 | Hole 8 | Hole 9 | Total | +----------------------------------------------------------------------------------------------------------------------+ |Dennis |CJam | | 31 | | | | | | | | …

7
混合ベース変換
バックグラウンド ここのほとんどの人は、10進数、2進数、16進数、8進数などのいくつかの基本システムに精通している必要があります。たとえば、16進数システムでは、番号12345 16は次を表します。 1*16^4 + 2*16^3 + 3*16^2 + 4*16^1 + 5*16^0 通常、ベース(ここでは16)が数字から数字に変わることを期待していないことに注意してください。 これらの通常の位置システムを一般化すると、数字ごとに異なる数値ベースを使用できます。たとえば、10進法と2進法を交互に使用している場合(最下位の10から始まる)、190315 [2,10]は次のようになります。 1*10*2*10*2*10 + 9*2*10*2*10 + 0*10*2*10 + 3*2*10 + 1*10 + 5 = 7675 このベースをとして示し[2,10]ます。一番右のベースが対応する最も重要な数字。次に、数字(左)を通り抜けながら(左)底を通り、底よりも多くの数字がある場合は折り返します。 詳細については、Wikipediaを参照してください。 チャレンジ 数字のリストが与えられると、プログラムや関数書き込みD入力ベースIと出力ベースO、で表される整数変換DベースからIベースにしますO。STDIN、ARGV、または関数引数を介して入力を取得し、結果を返すか、STDOUTに出力できます。 あなたは仮定するかもしれません: Iおよびの数値Oがすべてより大きいこと1。 非空です。IO 入力番号が指定された基数で有効であること(つまり、その基数よりも大きい数字がないこと)。 D空(を表す0)にすることも、先頭にゼロを付けることもできます。出力に先行ゼロが含まれていてはなりません。特に、表す結果0は空のリストとして返される必要があります。 組み込みまたはサードパーティのベース変換関数を使用しないでください。 これはコードゴルフで、最短の回答(バイト単位)が勝ちです。 例 D I O Result [1,0,0] [10] [2] [1,1,0,0,1,0,0] [1,0,0] [2] …

2
プログラマーズガーデン
プログラマーズガーデン プロのソフトウェア開発者であるあなたは、太陽の厳しい非人工光にさらされる危険を冒すことはできませんが、花のためのソフトスポットもあり、一年中庭を良い状態に保ちたいです。 このため、毎月庭師を雇って家のふもとの花壇をきれいにします。ただし、庭師が仕事を適切に行っていることを確認し、勤勉な仲間に適切な支払いをする必要があります。当然、ソフトウェアソリューションが最適です。 入力 プログラムには、現在表示されている花壇を説明する入力と、削除する必要があるアイテムの詳細が入力されます。プログラムは、乱雑さのない庭を出力し、庭師の支払いの内訳を印刷する必要があります。入力は、STDINからのものでも、単一のコマンドライン引数としてでもかまいません。 入力の最初の行は次の形式です width height unwanted_item_type_count ここwidthで、花壇の幅、花壇heightの高さ(両方ともASCII文字)、およびunwanted_item_type_count庭から削除するアイテムの種類の説明を含む行の数を示します。 不要な種類のアイテムの各行は次の形式です width height string_representation name fee_per_item ここwidthで、アイテムの幅、アイテムheightの高さ(両方ともASCII文字)、string_representation改行なしのアイテムの文字列表現、アイテムnameのタイプの識別子(スペースはアンダースコアに置き換えられます)、およびfee_per_item各タイプのアイテムの除去に対して庭師に支払う必要がある金額です。 例えば 3 2 .R.\|/ rouge_flower 3 nameのアイテムタイプをrouge_flower表します。これは、削除に3コストがかかり、次のようになります。 .R. \|/ アイテムにはスペースが含まれず、すべてのアイテムにドットのみで構成される境界線を含めることはできません。また、文字列表現も正確なサイズになります。したがって、次のすべては無効な入力です。 3 1 ( ) space 0 1 1 . dot 0 2 1 .! bang 0 3 2 .@.\|/. plant 0 ただし、0は有効な料金です(料金は常に-1より大きい整数です)。 また、花壇は主に.スペースではなくドット()で構成されており、すべての入力の区切りとして空白を安全に使用できることに注意してください。花壇は常にドット自体に囲まれています。 …
12 code-golf 

6
整数感情
指定された整数nに「反応する」プログラムまたは関数を作成します(関数parameter / args / stdinを介して入力) このプログラムは、負の数を気にせず、偶数を好み、奇数を嫌い、13を恐れます。 次を出力するはずです。 n <0の場合: -------------------------- | | | | (| _ _ |) | | | | | | | | | oooooooooo | | | | | | | -------------------------- n%2 == 0かつn> -1の場合: -------------------------- | | | | (| ^ ^ |) | …

7
最大の操作を見つける
課題は、基本的な算術演算子(加算、減算、乗算、単項否定)を使用して整数のリストから取得できる最大数を見つけることです 入力 整数のリスト 出力 入力のすべての整数を使用した最大結果。 入力順序は関係なく、結果は同じである必要があります。 すべての操作を出力する必要はなく、結果だけを出力する必要があります。 例 Input : 3 0 1 Output : 4 (3 + 1 + 0) Input : 3 1 1 2 2 Output : 27 ((2+1)*(2+1)*3)) Input : -1 5 0 6 Output : 36 (6 * (5 - (-1)) +0) Input : -10 …

15
比較演算子なしでCまたはC ++の2つの整数を比較する
(stdinまたは引数として)入力として2つの符号付き整数を取り、最初の数が(1)より大きい、(2)より小さい、または(3)2番目に等しいかどうかに応じて3つの異なる出力を表示する最短プログラムを生成します数。 キャッチ プログラムでは次のいずれも使用できません。 標準の比較演算子:<、>、<=、>=、==、!=。 離れてからの任意のライブラリ・ファイルconio、stdioまたはiostream。 非ASCIIまたは印刷不能ASCII文字。 勝者 最短文字数のプログラムが勝ちます。

8
私のこれらの素数は常に実線です
数値が素数かどうかを視覚的に判断するために使用できるスペースとアンダースコアのN×Nグリッドを作成しましょう。(Nは任意の正の整数です。) このグリッドには3つの単純なルールがあります。 n番目の列には、n-1個のアンダースコアと1つのスペースの繰り返しパターンが含まれます。このパターンは最初の行から始まり、場合によっては行Nで途中で停止します(行と列には1インデックスが付けられます)。 最初の列は、すべてのスペースではなく、すべての下線に置き換えられます。 行インデックスが列インデックスと等しい場所にスペースが発生すると、アンダースコアに置き換えられます。 例:N = 10 1 1234567890 <-- column indices 1__________ 2__________ 3__________ 4_ ________ 5__________ 6_ _______ 7__________ 8_ _ ______ 9__ _______ 10_ __ _____ ^ row indices インデックスはわかりやすくするためのものです。プレーングリッド自体(プログラムが出力する必要があるもの)は次のとおりです。 __________ __________ __________ _ ________ __________ _ _______ __________ _ _ ______ __ _______ _ __ …
12 code-golf  primes 

1
Androidフォンのロックを解除するのにどれくらいの時間が必要ですか?
シナリオ 私はパターンマッチングロックスクリーンを使用していますが、残念ながらパターンを忘れてしまいました。ロックを解除するのに必要な時間を知りたいです。このチャレンジに使用するGoogleのロック画面の仕様を以下に示します。 5つの間違ったコードごとに、ユーザーは30 secondsそれ以上入力するまで待たなければなりません。 パターンは、少なくとも4 points以下で構成されている必要があります(以下を参照) ポイントは1回しか使用できませんが、複数回確認できます(下の画像を参照)。 ここでは、この特定のパターンで再び中心点を通過しても、中心点は1回だけ使用されます。 仮説と事実 私たちはスーパーヒーローであり、で任意のパターンを描くことができると仮定します1 second。食べたり寝たりする必要はありません。ええ、私たちは超人です。 私は非常に不運な人です。「最悪のシナリオ」は私の日常生活であるため、最後に試みるパターンは正しいものです。 何が必要ですか? 知らない人のために、Android(および現在他の携帯電話)は、9ポイントマトリックスにパターンを描くことで携帯電話のロックを解除する機能を提供しています。このマトリックスは次のように説明できます。 C(A) M(B) C(C) M(D) X(E) M(F) C(G) M(H) C(I) 「コーナーポイント」を表すC 「中間点」のM 「中心点」のX 簡単にするためにポイントに識別子を付けました 許可される直接接続は次のとおりです。 コーナーポイント: 中間点: 中心点 : ただし、steveverrillが指摘したように、「中心が使用されると(したがって使用できなくなると)、左下隅と右上隅の間の直接接続が明確になり、したがって可能になります」。同じことがすべての「中間点」にも当てはまります。たとえば、ポイントBがすでにカウントされている場合、AとCの間の直接接続が可能です。たとえば、Fがすでにカウントされている場合、CとIの間の直接接続が可能です。等... ルール この課題のポイントは、このいまいましい携帯電話のロックを解除する必要がある時間(人間が読める形式、年/日/月/時間/何時でも)を返すことです。 可能な有効なパターンの数をハードコーディングすることはできません(Googleでさえ、ばかにしないでください)。 最短のコードが勝つ 幸運を !

5
力を上げる
チャレンジ 課題は、正の数aとゼロ以外の数を取り、b出力a^b(aの累乗b)を行うプログラムを作成することです。+ - * / abs()数学関数/演算子としてのみ使用できます。これらはスカラー値にのみ適用できますが、リスト全体または配列には適用できません。 例: 1.234 ^ 5.678 = 3.29980 4.5 ^ 4.5 = 869.874 4.5 ^-4.5 = 0.00114959 関連:http : //xkcd.com/217/ 詳細 コンソールで使用するための関数または同様の構造を作成できます。コンソール入力を使用できない場合は、両方の数値が標準出力またはファイルへの書き込みを介して変数と出力に保存されていると想定できます。出力は、少なくとも4桁の有効数字に修正する必要があります。両方がゼロでないaと仮定できbます。1分を大幅に超えるランタイムは受け入れられません。最小バイト数が勝ちます。プログラムとアルゴリズムを説明してください。 編集:ポジティブベースのみを考慮する必要があります。あなたが仮定することができa>0ます。両方の数値が整数である必要はないことに注意してください!!!

4
カクロの組み合わせ
カクロの組み合わせ 暗算はできないので、カクロパズルに苦労することがよくあります。カクロパズルでは、被害者が、1〜9の範囲内の異なる数字の合計を1〜45の範囲の別の数字と繰り返し計算する必要があります。多くの数字があります。たとえば、3つの数字から23を取得する方法を知りたい場合、答えは6 + 8 + 9だけです(これに精通している場合、これはKiller Sudokuと同じ考えです)。 場合によっては、数字1 が存在できないなど、他の情報があるため、2つの数字だけで8を達成するには、2 + 6と3 + 5しか使用できません(4 + 4は使用できないため、4 + 4は使用できません)明確ではありません)。あるいは、ソリューションで既に3を見つけている可能性があるため、3の数字の19のようなものは3 + 7 + 9でなければなりません。 あなたの仕事は、与えられた問題に対するすべての可能な解決策を厳密な順序で、厳密なレイアウトでリストするプログラムを書くことです。 入力 ソリューションは、入力を単一のASCII文字列として、stdin、コマンドライン引数、関数の引数、スタックに残された値、またはお気に入りの難解な言語が採用している狂気のいずれかを介して受け取ることができます。文字列は次の形式です number_to_achieve number_of_numbers_required list_of_rejected_numbers list_of_required_numbers 最初の2つの引数は、それぞれ1から45および1から9の範囲の典型的な10進数の非負の非ゼロ整数です(小数点を使用すると無効な入力になります)。2つのリストは、繰り返しのない特定の順序、または空のリストの場合は「0」。リスト間で共有数字を使用することはできません(0を除く)。区切り文字は単一のスペースです。 出力 出力は、可能な解決策の数を含む行で始まる必要があります。プログラムでは、重要度の高い各桁でソートされた改行区切りのソリューションを出力する必要があります。各桁は、1〜9の数字をリストした場合の位置に配置されます。 無効な入力が提供された場合、あなたのプログラムが何をするかは気にしませんが、ブートセクタをゼロにしたくはありません。 例 この入力例 19 3 0 0 予想される出力は 5 2 89 3 7 9 4 6 9 4 78 …

6
ASCIIで織る
|文字の長方形のグリッドが、織機のピンと張ったストリングス(縦糸)を表し、他の糸(横糸)を表すと想像してください-。 7×4織機の不織布ワープは次のとおりです。 ||||||| ||||||| ||||||| ||||||| 緯糸を経糸に織り込む方法はいくつかありますが、最も簡単なのは平織りです。 平織りの最初の行では、緯糸は最初のたて糸ストリングの上から始まり、2番目のストリングの下、3番目のストリングの上、4番目の下などに続きます。 2番目の横糸の行は最初の横糸の行と同じですが、1本の縦糸によって右にオフセットされているため、下から始まり、上に行く、というように続きます。 7×4織機では、平織りは次のようになります。 -|-|-|- |-|-|-| -|-|-|- |-|-|-| 緯糸は経糸を1回、次に1回未満通過し、後続の各行は1ストリング右にシフトされると言うことで、平織りを説明できます。 一般化された織りは、緯糸を縦にv回、次にu回、それぞれの行を右にs文字列シフトすることで説明できます。(すべての値は整数であり、sは 0または負であってもよい、U及びVは非負でなければなりません。) v = 1、u = 2、s = 2、ツイル織りのタイプの7×4織機: -||-||- ||-||-| |-||-|| -||-||- チャレンジ あなたの仕事は、v、u、s、織機の幅と高さ、および初期シフトを与えられたバーとダッシュの織りパターンを生成する最短のプログラム(バイト単位)を書くことです。 最初のシフトは、緯糸の最初の行は、右(上記の例では0)にシフトされた文字列の数です。後続の各行は、さらにs個の文字列だけシフトされます。 プログラムは、これらの6つの数値を使いやすい形式(stdin、関数呼び出しなど)で取得し、バーと長方形の編まれたグリッドをstdoutに出力する必要があります。すべての入力が有効であると想定できます。(すべての値は整数で、幅と高さは正である必要があります。初期シフトは何でもかまいません。) 例 幅= 5、高さ= 4、初期シフト= 0、v = 1、u = 3、s = -2: -|||- ||-|| -|||- ||-|| 幅= 5、高さ= 4、初期シフト= …

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