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

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

8
チョコレートバーを食べる
私にはチョコレートバーがあり、それを食べるのに助けが必要なので、あなたはそれをするためだけのプログラムを書くことになります。 説明 最初の行は入力です。例は空行で区切られています。 7 ____ __|__| |__|__| |__|__| |__|__| 6 _______ |__|__| |__|__| |__|__| 5 ____ __|__| |__|__| |__|__| 0 1 ____ |__| スペック うまくいけばこの例がこの課題を明確に示していますが、混乱を避けるために仕様を示します 単一のオプションの末尾/先頭の空白を使用できます の入力0は空の出力です。 入力が偶数の場合、上の行は次のようになります。 _______ |__|__| 奇数の場合、一番上の行は次のとおりです。 ____ |__| 奇数で1より大きい場合、上の行は次のとおりです。 ____ __|__| 次の行は次のとおりです。 |__|__| のインスタンスの数が|__|入力と同じになるまで

9
空白を相互に埋める
対応する単語を表す下線のシーケンスを持つ2つの文字列の入力が与えられた場合、「空白」が埋められた文を出力します。 この課題を説明する最良の方法は、例です。入力例を次に示します。 programming _____________ and code golf programming puzzles ______ code ____ 次に、対応する出力を示します。 programming ___puzzles___ and code golf programming puzzles _and__ code golf このチャレンジでは、「単語」は1つ以上の小文字のシーケンスとして定義され、「空白」は1つ以上のアンダースコアとして定義されます(入力には常に小文字、スペース、アンダースコアのみが含まれます) 。入力文字列の単語と空白は単一のスペースで区切られ、文の単語と空白の数の合計は常に等しくなります。 チャレンジの目的は、すべての空白を正しい 単語で埋めることです。これは、スペースで分割したときに他の文字列の同じインデックスを占める単語です。 上記の例で「パズル」という単語で示されているように、単語は空白の中央に配置する必要があります。どちらの側にも同じ数の下線が残ります。 単語を正確に中央に配置できない場合は、余分なアンダースコアを左または右に配置できます(上記の例では「and」という単語)。 単語が収まるのに十分なアンダースコアが常に存在しますが、単語の長さと正確に同じ長さになる場合があります(上記の例では単語 "ゴルフ")。 両方の文字列の同じ位置に空白が存在することはありません。 入力/出力は次のいずれかになります(入力/出力は必ずしも同じメソッド経由である必要はありません)。 アルファベット、スペース、またはアンダースコア以外の文字で区切られた単一の文字列(改行またはコンマ区切りの文字列など) 配列/リスト/など。2つの文字列の 2つの関数/コマンドライン引数(入力のみ) これはcode-golfであるため、バイト単位の最短コードが優先されます。 上記の例をテストケースとして使用できます。次に、より大きなテストケースを示します(出力の2番目の文字列は、センタリング動作が異なるために若干異なる場合があります)。 lorem _____ dolor _____ amet _______________ adipiscing elit mauris dapibus tincidunt _____________________________ …
11 code-golf  string 

1
ABCソルバーとして簡単
「エンドビュー」としても知られるEasy As ABCは、周りに文字が入った空のグリッドが表示されるパズルです。各文字の正確に1文字がすべての行と列に含まれるように、グリッドを部分的に埋める必要があります。さらに、行(または列)の最後の文字は、その行(または列)でその方向から見える最初の文字でなければなりません。このコードゴルフの目標は、Easy As ABCパズルを解くことです。 たとえば、MICの文字を使用した今年のMITミステリーハントの Easy As ABCパズルは次のとおりです。 解決策は次のとおりです。 (Csのアーティファクトについては申し訳ありません。パズルの残りの部分から無関係な情報を編集してみました。) I / O 入力は、文字列の配列または場合によっては区切り文字を含む文字列になります。左上隅から始まり、時計回りに進みます。たとえば、上記のパズルは次のように入力できます。 ".CMM.M|....IM|.....I|C.ICI." 出力は、境界線の有無にかかわらず、解決されたグリッドである必要があります。文字の配列、文字列の配列、またはその他の便利な形式として使用できます。同じ「空白」文字を入力として受け入れ、出力として表示する必要がありますが、その空白文字は何でもかまいません。それらが単一の文字列である場合、入力と出力の両方に同じセパレーター(入力の両側と出力の行の間)があるか、セパレーターがまったくない必要があります。 解決不可能なパズルの場合、ソリューションと間違えられないものを出力する必要があります。パズルには複数の解決策があるとは思わないでしょう。 任意の数の文字と任意のサイズのグリッドを許可する必要があります。使用されたすべての文字がグリッドの境界線に表示されます。 これはコードゴルフです:いつものように、最短のコードが勝ちます! テストケース "T.AA..|.T.TSS|..TST.|A...SS" "R.RU..|B.B..B|.UR.UB|UR..B." "N...NK|E.NK.K|..KK..|....EK" "CA..DBD|.B..CC.|.D.DEB.|DB.A..A" "...DDEBE|DC..EBBD|BA..ABF.|E..FECDE"

5
ASCIIボックスレンダリング
仕事 あなたの仕事は、入力で指定された場所にASCIIボックスを出力するプログラムを書くことです。 入力 番号のリストが表示されます。ここでのフォーマットは、あなたが望む任意のdeliminatorを使用することができることで、少し柔軟性がある(例えば1,2,3,4、1 2 3 4、[1,2,3,4])。リストは4つのグループになっておりxywh、各ボックスのを指定します。各ボックスの幅と高さは少なくとも2 xでwidth、左から右になります。yそしてheight上から下です。 出力 レンダリングは右から左と考えることができ、右側のボックスが最初に描画され、その後のすべてのボックスがその上に描画されます。末尾のスペースと末尾の改行が1つ許可されます。 重複するボックスを処理する方法 入力の左側のボックスは最上部のボックスであり、何も重なりません。それ以降のすべてのボックスは、既にボックスに含まれていないスペースでのみレンダリングされ、すでにレンダリングされたボックスの境界を置き換えません。 スタイル ボックスのスタイルはかなり標準的で、+角に-使用され、水平線に|使用され、垂直線に使用されます。 例: (>>>入力を示す) >>>0 0 11 4 7 2 8 4 3 5 8 3 +---------+ | | | |---+ +---------+ | | | +---+------+ | | +------+ >>>0 3 11 4 7 5 8 4 3 …

5
ベズーのアイデンティティ
ベズーのアイデンティティの紹介 2つの整数A、BのGCDは、残りを残さずにそれらを分割する最大の正の整数です。ユークリッドの性質により、各整数Nは次のように別の整数Mで除算できます。 次のように書けるようなペアu、vが存在します。 これらのペアは無限にあるため、特別なペアを見つけたいと思います。実際には、(A、Bがゼロではない)そのようなペアが2つあります。 例えば チャレンジ この課題の目的は、上記の制約を満たし、uが正でなければならない係数(u、v)のペアを見つけることです。これにより、出力が一意のペアに絞り込まれます。 入力 入力が正であると仮定することもできます。また、Aは常にBよりも大きくなります(A> B)。 出力 プログラム/関数の出力は、チャレンジで指定された(順序付けられた)ペアでなければなりません。 ルール 組み込みの拡張ユークリッドアルゴリズムを使用してはなりません(たとえば、Mathematicaでは使用は許可されていますGCDが、許可されていませんExtendedGCD-とにかく5,3で失敗します)。 答えは、完全なプログラム(STDINなどを介して入力を取得し、STDOUTを介して出力する)または関数(ペアを返す)です。 ペア(u、v)の横には出力がありません。末尾の改行またはスペースは許可されます。(大括弧またはコンマで構いません) これはコードゴルフであり、すべての標準的な抜け穴は禁止されており、バイト数が最も少ないプログラムが勝ちます。 例 (A, B) -> (u, v) (42, 12) -> (1, -3) (4096, 84) -> (4, -195) (5, 3) -> (2, -3) (1155, 405) -> (20, -57) (37377, 5204) -> (4365, -31351) (7792, 7743) …

6
10進数のトリムとカウント
この課題では、入力文字列の小数点以下の桁数を出力するプログラムを作成し、必要に応じて入力をトリミングします。 例 -12.32 2 32 0 3231.432 3 -34.0 0 -34 023 0 23 00324.230 2 324.23 10 0 00.3 1 0.3 0 0 -04.8330 3 -4.833 ルール 入力は、取得できる文字列、STDIN、関数の引数、または最も近いものになります 出力は、関数リターン、STDOUT、または最も近い同等のものを使用できます。 言語の最大文字列長を除いて、入力整数のサイズに制限はありません。 入力に不要な(先頭または末尾の)ゼロがある場合: それらを取り出す必要があります 新しい数値の小数点以下の桁数を出力します セパレータで区切られた新しい番号を出力します(スペース、改行、コンマなど) 入力は常にこの正規表現に一致します:-?\d+(\.\d+)?または正規表現を話さない場合: 最初に負の数を暗示する可能性があり-ます。次に、少なくとも 1桁があります。そして、そこに可能性が ...あること.と、いくつかのより多くの数字を。 入力が有効かどうかを確認するには、こちらをチェックしてください 正規表現なし これはコードゴルフなので、バイト単位の最短コードが勝ちます

12
イーニー、ミーニー、ミニー、モー
前書き 幼年期の歌Eeny、meeny、miny、moeは、タグを再生するときに誰が「それ」だったかを選択するためによく使用されました。全員が輪になって、ランダムに選択された1人を指さします。彼らは歌うでしょう: Eeny、meeny、miny、moe、 つま先でトラを捕まえます。 彼が大声で叫ぶなら、彼を手放しなさい、イーニー、ミーニー、ミニー、モー 。 彼らはそれぞれの言葉を歌いながら、円の中の次の人を指さしました。最後の「萌え」が歌われたときに指さされるのは「それ」だろう。子どもたちはすぐに立ち上がって散ります。 ゴール 入力、子の数、および指示されたときに歌われた単語をリストする、最短のプログラムをバイト単位で実装します。 勝者は1週間で選出されます。 入力 STDINから、単一の正の整数、子の数。これは、歌の単語数よりも多い場合があります。 出力 STDOUTに、各行が子を表し、ポイントされている間に歌われる単語を含むリストを書き込みます。子が多すぎる場合、空の行が省略される場合があります。 必要条件 常に最初の子供から始めてください。 句読点なしで単語を表示します。 最後の「萌え」は「萌え!」として強調されるべきです。句読点を含む。 例 入力 3 出力 Eeny moe tiger toe hollers go miny meeny Catch by If let Eeny MOE! miny a the he him meeny 入力 7 出力 Eeny by him meeny the …

8
ユニティのプリミティブルーツ
ましょうz複素数になります。zは、特定の正の整数および任意の正の整数の場合、単一性の n番目のプリミティブルートです。n k < n チャレンジ n入力として正の整数を指定すると、ユニティのn番目のプリミティブルートをすべて出力する完全なプログラムまたは関数を記述します。それらを極形式(e^θiまたはe^iθ、引数は小数点以下2桁以上の小数でなければなりません)または長方形形式(a + biまたは同様の形式、実数部と虚数部も小数である必要があります)で出力でき、言語のリストに出力できます/ array形式、またはスペースまたは改行で区切られた数字の文字列として。ユニティのn番目のルートまたはユニティのn番目のプリミティブルートを計算するビルトインは許可されていません。 これはcode-golfなので、バイト単位の最短コードが優先されます。 サンプルの入力と出力 6 -> e^1.05i, e^-1.05i # polar form 3 -> e^2.094395i, e^-2.094395i # any number of decimal places is OK as long as there are more than 2 8 -> 0.707 + 0.707i, 0.707 - 0.707i, -0.707 + 0.707i, …

1
数の計算、除数版
数学に関するこの質問に触発されました。 数nの素因数分解をP(n)= 2 a x 3 b x 5 c x ...として表すとします。 (乗算記号としてxを使用します。)n の約数は、D(n)=(a + 1)x(b + 1)x(c + 1)...として表すことができます。 したがって、2nの約数はD(2n)=(a + 2)x(b + 1)x(c + 1)...で あり、3nの約数はD(3n )=(a + 1)x(b + 2)x(c + 1)...など 。 チャレンジ: 特定の除数入力を指定して、これらのプロパティを使用してnを計算するプログラムまたは関数を作成します。 入力: 整数のセット、それらをw、x、y、zと呼び、次のすべての定義を使用します。 すべての入力が1より大きい- w, x, y, z > 1 xとzは異なる-x<>z XとZは -プライムありP(x)=x、D(x)=2かつP(z)=z、D(z)=2 …

3
表を読む
仕事 座標セットを指定してテーブルの内容を読み取ります。 テーブルの書式設定 テーブルは次の基本形式になります。 |[name]|[name]| --------------------- [name]| [val]|[val] | [name]| [val]|[val] | 列名は、列内で常に一意です。行名もrows内で一意です。これには、空白を除いて同じ名前が含まれます。値、列名、行名は|-内部にありません。名前と値の内部にスペースが含まれることはありませんが、先頭または末尾にスペースが含まれる場合があります。列幅は、ヘッダー/コンテンツに基づいて調整可能です。列幅は常に上から下まで一貫しています。 入力 テーブルと[name]sのスペース区切りリスト。 例 [table] row col 関数を作成している場合、これらは別々の文字列にすることができます。そうでない場合は、row col常に入力の最後の行になります。row colこの形式にはある程度の柔軟性があり、さまざまな方法で表現できます。(例えば(row, col)、r, c、...)。唯一の厳しい要件は、それが1行であり、順序で表示される必要があることcol rowです。 出力 セルの先頭または末尾にスペースがない入力で指定されたセルの内容。 例 In: |a|z |_*| ------------ atb|1|85|22| b |5|6 |e$| /+*|8|we|th| atb a Out: 1 In: | x| b | ---------- ab|l |mmm| b …
11 code-golf  string 

1
言葉の間の魅力
ニュートンの重力理論では、2つの点質量の間の重力は F =(Gm 1 m 2)/ r 2 どこ Gは重力定数です:6.674×10 -11 N・(m / kg)2 m 1は最初のオブジェクトの質量です m 2は2番目のオブジェクトの質量 rは、重心間の距離です。 チャレンジ 2つの単語間のプルをシミュレートする必要があります。各小文字には、アルファベットの位置によって与えられる質量があります。大文字には小文字の2倍の質量があります!いくつかのスペースで区切られた2つの単語と、正の整数の秒数sを含む文字列が与えられます。s秒後に文字列がどのように見えるかを出力します。 情報 単語は抽象的であるため、単位と定数の異なるセットがあります 質量:WMU(Word Mass Unit)-文字「a」の質量に等しい。 距離:em、1文字の長さ。 フォース: N W(ワードニュートン)= WMU・em / s 2 重力定数:G = 1 N w・(em / WMU)2 最初の文字は、x軸の位置0に対応します。 すべての計算は可能な限り正確に行う必要があり、最後にのみ最も近いemに丸めます。 微積分を使用する必要はありません。Fを毎秒再計算し、新しい加速度を速度に自動的に適用し、1秒後に位置に速度を適用する必要があります(例を参照)。 2つの単語が互いに衝突すると(など catdog )、それ以上移動しません。 重心 単語の重心は次の式で見つけることができます: ここで、Mは単語の総質量、m …

6
異常なキャンセルを使用して分数を単純化できますか?
異常なキャンセル(Wolfram Alphaから): 異常なキャンセルとは、分数a / bの分子と分母におけるaとbの数字の「キャンセル」であり、結果として元の分数と等しくなります。分子と分母に1つ以上の桁の複数の異なるカウントがある場合、キャンセルする桁があいまいになるため、このような場合を考慮から除外するのが最も簡単であることに注意してください。 リンク 簡単に言えば、分数があるとしましょうa / b。分数の桁をキャンセルしてc / d元の(a / b = c / d)と等しい別の分数を作成できる場合、異常なキャンセルを使用して分数を単純化できます。 あなたの課題は、フォームに分数文字列を入力し、a/b異常なキャンセルを使用して分数を単純化できる場合は真理値を出力し、そうでない場合は偽値を返すプログラムまたは関数を作成することです。aそしてb、常にゼロ以外の正の整数になります。aそしてb常に2桁以上を持つことになります。また数字の、すべてのいずれかから、aまたはb(あなたが入力を取得文句を言わない相殺されることはありません12/21少なくとも1桁)からaとb(あなたが入力を取得文句を言わないたびにキャンセルされます43/21)、および最終結果はなることはありません0どちらかのためにaまたはb。あなたのプログラムは、aとの間のすべての一般的な数字をキャンセルする必要がありbます1231/1234、a 1、a 2、aをキャンセルする必要があります3。キャンセルの可能性が複数ある場合は、左端の桁を最初に選択します(515/25は51/2ではなく15/2になります)。 例: Input Output Why 1019/5095 true Remove the 0 and the 9 from both sides of the fraction to get 11/55, which is equivalent. 16/64 true Remove the 6 from …

4
メモリアロケータ
新しい難解なプログラミング言語を設計していて、追加することに決めた機能の1つが動的メモリアロケーターです。あなたの言語は、ユーザーのプログラム空間に特別な専用仮想アドレス空間を指定します。これは、メモリアロケーターが内部状態に使用するアドレス空間とは別のものです。 実装の配布コストを削減するには、コードのサイズをできるだけ小さくする必要があります。 インターフェース 初期化、割り当て、および割り当て解除の3つの機能を提供する必要があります。 初期化 この関数は、単一の正の整数パラメータを取りますN。これは、ユーザーのプログラムのNアドレス空間にN-1バイトがあり、そこからメモリを割り当てるバイトがあることを意味します。アドレス0は「null」用に予約されています。 この関数は、割り当て/割り当て解除の呼び出しの前に1回だけ呼び出されることが保証されています。 この関数は、ユーザープログラムの仮想アドレス空間に物理メモリを割り当てる必要がないことに注意してください。基本的に、空のメモリアロケータの「ルックアンドフィール」を作成しています。 割り当てる 割り当て関数は、割り当てるメモリのバイト数の要求を受け取る必要があります。入力は正であることが保証されています。 関数は、割り当てられたブロックの先頭に整数アドレスを返すか0、要求されたサイズの連続するブロックが利用できないことを示す必要があります。使用可能なサイズの連続したブロックがアドレス空間のどこでも使用できる場合、割り当てる必要があります 割り当てられた2つのブロックが重複しないようにする必要があります。 割り当て解除 deallocate関数は、割り当てられたブロックの開始アドレスを取得する必要があり、オプションで特定のブロックのサイズを取得することもできます。 割り当て解除されたメモリは再び割り当てに使用できます。入力住所は有効な住所であると想定されます。 Python実装の例 内部状態を追跡するための任意の方法を選択できることに注意してください。この例では、クラスインスタンスがそれを追跡します。 class myallocator: def __init__(self, N): # address 0 is special, it's always reserved for null # address N is technically outside the address space, so use that as a # marker self.addrs = …
11 code-golf 

3
清らかな世界の準備
Pristine Worldのプログラミングに大きな影響を受けています。また、この課題に密接に関連しています。 素数の素数を、それ自体が素数であるが、基数Nの10桁の連続した部分文字列を削除すると素数ではなくなる数として定義しましょう0 < N < digits in number。 たとえば、409は素数であるため、409は元の素数ですが、1桁の部分文字列を削除した結果の数値はすべて素数ではありません。 40 49 09 = 9 長さ2の部分文字列を削除した結果の数値はすべて素数ではありません。 4 9 一方、素数439は元のままではありません。異なる部分文字列を削除すると、次の結果になります。 43 49 39 4 9 49、39、4、および9はすべて非素数ですが、43 は素数です。したがって、439は元のままではありません。 2、3、5、および7は、部分文字列を削除できないため、ごく単純です。 チャレンジ あなたの課題は、正の整数Nを取り込んでN番目の自然素数を出力するプログラムまたは関数を作成することです。最新のPCでは、最大50の入力に対してコードは1分未満で終了するはずです。 バイト単位の最短コードが優先されます。 参考として、ここに最初の20の素朴な素数を示します。 N Pristine prime 1 2 2 3 3 5 4 7 5 11 6 19 7 41 8 61 …

5
椅子を分析する
この課題は、DowngoatのAdjust your chairに基づいています。 チャレンジ 新しい椅子を調整しました!それはあなたにぴったりです。ただし、ホイールはきしむ音がするので、修理担当者が調整を変更することを知っています。問題は、定規がないため、プログラムを作成して測定する必要があることです。 修理の人はとても長く待つことができます。そのため、コードはできるだけ短くする必要があります。 例 O | | | _ | | |_|_ | | O 5,3,2,2,1 O | _ | | |__|__ | | __|__ OOOOO 3,5,2,3,5 O | _ |______|______ ______|______ OOOOOOOOOOOOO 2,13,1,1,13 椅子パーツ 椅子にはさまざまなコンポーネントがあります。 O <- Headrest | | <- Backrest | _ <- Armrest …

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