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

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

2
重なり合う円の境界線
平面上の複数のポイントの座標と、各ポイントを囲む円の半径を指定して、円と円が交わるエッジを表すポリゴンを描画します。まっすぐなエッジは常に円と円の交差線に沿って落ちますが、これらの線の全長に沿っていない場合があります。 パーmbomb007さんの提案、2D石鹸の泡の挙動を想像してみてください。それは技術的に間違っています。シャボン玉は常にエネルギーを最小化するために120°の角度で交わるのに対し、これらの円はどの角度でも交わることがあります。 これは、定義された面積平面を除いたボロノイ図です。アンドレアスに感謝します。これは実際には、パワー図と呼ばれるボロノイ図の一般化です。 例 たとえば、2つのポイントと2つの半径を指定すると、出力は次のようになります。 別のポイントと半径を追加すると、出力は次のようになります。 入力 入力は自由に構成できます。次の入力で結果を投稿してください。 テスト1 x:10、y:10、r:10 x:25、y:12、r:8 テスト2 x:8、y:10、r:6 x:20、y:8、r:4 x:18、y:20、r:12 出力 出力はグラフィカルで、ポリゴンの境界線を含む必要がありますが、他には何も必要ありません。ポイントや交差点は、例のように表す必要はありません。 制約 別の円の半径内にポイントは存在しません。 標準のcodegolfルール。 抜け穴のある回答は受け付けられませんが、気軽に楽しんでください。

30
「フィット」番号を出力する
「フィット番号」 サムには、圧縮に関する「素晴らしい」アイデアがあります。手伝ってくれますか? これがサムの圧縮スキームの要約です。最初に、厳密に2 ^ 16よりも小さい任意の自然数の基数10表現を取得し、先行ゼロなしのバイナリ文字列として書き込みます。 1-> 1 9-> 1001 15-> 1111 13-> 1101 16-> 10000 17-> 10001 65535-> 111111111111111 1つ以上のゼロのグループを単一のゼロに置き換えます。これは、数値がスリムになったためです。バイナリ文字列は次のようになります。 1-> 1-> 1 9-> 1001-> 101 15-> 1111-> 1111 13-> 1101-> 1101 16-> 10000-> 10 17-> 10001-> 101 65535-> 111111111111111-> 111111111111111 ここで、バイナリ文字列をベース10表現に変換し、受け入れ可能な形式で出力します。テストケースは次のとおりです。最初の整数は入力を表し、最後の整数は出力を表します。一部の数値は変わらないため、「適合」と呼ぶことができることに注意してください 1-> 1-> 1-> 1 9-> 1001-> 101-> 5 …

6
課題が回答に値するかどうかを判断する
私は非常にカジュアルなコードゴルファーであり、StackOverflowの「Hot Network Questions」サイドバーに投稿が表示されるまで、投稿を見ることはあまりありません。通常、私はゲームに遅れており、私が知っている唯一の言語はPythonであるため、すでにいくつかのPythonの答えがあるので、答える意味はほとんどありません。あなたの課題は、質問に答える価値があるかどうかを判断することです。 入力: コード(関数またはプログラム)は1つの入力パラメーターを取ります i 出力: 質問idのTruthyまたはFalsey値i。質問に5つ以上の回答、3つ以上の質問スコア、およびPythonで1つ以下の回答がある場合、Truthyを出力します(バージョンの区別はありません)。 規則/説明: 入力形式は合理的なものであれば何でもかまいません(stdin、file、command line)が、回答で指定する必要があります。データ型と先頭/末尾の空白は関係ありません。 に対して質問IDが有効であると仮定しcodegolf.stackexchange.comます。 言語固有の質問要件を無視します。(つまり、質問が投票と回答を満たし、Pythonの回答がJavaのみであるために回答がない場合でも、結果はTruthyになります)。 「python」(大文字と小文字を区別しない)が投稿の最初の改行の前のどこかにある場合、回答はPython回答とみなされます。 これはコードゴルフであるため、バイト単位の最短コードが優先されます。 サンプルケース* id = 79082 => True id = 78591 => False (less than 5 answers, also hella hard) id = 78410 => True id = 76428 => False (greater than 1 Python answer) id = …

18
いくつかの番号を解凍します
あなたの仕事は、10行の長さのジッパーを生成するプログラムまたは関数を作成することです。ジッパーの各行は2つのダッシュで表され--ます: -- -- -- -- -- -- -- -- -- -- プログラム/関数は入力としてパーセンテージ(10で割り切れる)を取り、出力は上部からパーセンテージで「解凍」(ダッシュで区切られた)ジッパーになり、1インデックス付きの最低レベルが2回繰り返されます。以前のすべてのレベルが4、6、8、...などを繰り返した。ジッパーの底を中央に保ちながら何度も。 例 >>10% -11- -- -- -- -- -- -- -- -- -- >>50% -1111111111- -22222222- -333333- -4444- -55- -- -- -- -- -- >>100% -11111111111111111111- -222222222222222222- -3333333333333333- -44444444444444- -555555555555- -6666666666- -77777777- -888888- -9999- -10- 入力(パーセンテージ)は好きなようにフォーマットできます(50%、. 5、50、5 [ゼロインプライド]など)。常に0〜100の範囲で、10で割り切れます。例は出力に保存する必要があります。

10
フィボナッチ分解
フィボナッチ数 フィボナッチ数で始まるf(1) = 1とf(2) = 1(いくつかは、f(0) = 0これは、この挑戦とは無関係である。その後、のためにn > 2、f(n) = f(n-1) + f(n-2)。 チャレンジ あなたの仕事はn、フィボナッチ数の積として表現できる正の正の数を見つけて出力することです。インデックスを0にするか、インデックスを1にするか、どちらか適切な方を選択できますが、回答でこれを指定する必要があります。 また、あなたの答えは、妥当な時間で100番目の用語を計算する必要があります。 テストケース n result corresponding product (for reference) 1 1 1 2 2 2 3 3 3 4 4 2*2 5 5 5 6 6 2*3 7 8 2*2*2 or 8 8 9 3*3 …

23
除数の削減
数値nの除数は、1とn自体を含め、nを均等に分割する任意の数値です。約数d(n)は、数に含まれる約数です。最初のカップルn のd(n)は次のとおりです。 n divisors d(n) 1 1 1 2 1, 2 2 3 1, 3 2 4 1, 2, 4 3 5 1, 5 2 6 1, 2, 3, 6 4 数から除数の数を繰り返し減算できます。例えば: 16 = 16 16 - d(16) = 16 - 5 = 11 11 - d(11) = 11 - …

3
テストをランダム化する
私は教師で、数日後に生徒にテストをしなければなりません。今、私は、最も愛する生徒たちが不正行為をするときに最も愛らぬ生徒たちに傷つけられることを常に心配しています。だから、誰もだまさないようにテストをランダム化したいと思います。 今、私はこの形式でテストを保存しています: When was Java invented? Why does this matter? 1941 War was beginning None of the above What is the increment operator in Java? Stack Overflow>how 2 incrememnt Google>how 2 incrememnt increment ++ つまり、質問は1つの空白行で区切られ、回答の前にはすべて2つのスペースがあります。これは私が必要とする出力です: What is the increment operator in Java? ++ increment Google>how 2 incrememnt Stack Overflow>how 2 …
21 code-golf  random 

3
順列平方根
数学では、次数nの順列 σは、整数1 ... nからそれ自体への全単射関数です。このリスト: 2 1 4 3 は、σ(1)= 2、σ(2)= 1、σ(3)= 4、σ(4)= 3のような置換σを表します。 順列σの平方根は、それ自体に適用されるとσを与える順列です。たとえば、2 1 4 3平方根はτ = 3 4 2 1です。 k 1 2 3 4 τ(k) 3 4 2 1 τ(τ(k)) 2 1 4 3 なぜなら、すべての1≤k≤nに対してτ(τ(k))= σ(k)だからです。 入力 順列を表す、n > 0の整数(すべて1〜nを含む)のリスト。順列は常に平方根を持ちます。 入力と出力が一貫している限り、0 ... n-1のリストを代わりに使用できます。 出力 配列としての順列の平方根。 制限事項 アルゴリズムはnの多項式時間で実行する必要があります。つまり、n個すべてをループすることはできません。次数nの順列。 …

7
これは部分行列ですか?
これは、この課題の2次元の一般化です。 私たちの目的では、Bから行と列の数を完全に削除してAを取得できる場合、1つの行列(または2D配列)Aは別の行列Bの部分行列と見なされます。(注:一部のソースには、異なる/より制限的な定義があります。) 以下に例を示します。 A = [1 4 B = [1 2 3 4 5 6 2 1] 6 5 4 3 2 1 2 1 2 1 2 1 9 1 8 2 7 6] Bから列2、3、5、6および行2、4を削除してAを取得できます。 B = [1 2 3 4 5 6 [1 _ _ 4 _ _ …

14
最小剰余シーケンスを生成します
すべての数値は、無限に長い剰余シーケンスを使用して表すことができます。私たちは数7を取り、そして実行した場合たとえば、7mod2その後、7mod3その後、7mod4など、私たちが得ます1,1,3,2,1,0,7,7,7,7,....。 ただし、下位のすべての下位シーケンスと区別するために使用できる、可能な限り短い残りのサブシーケンスが必要です。再度7を使用[1,1,3]するのが最も短いサブシーケンスです。これは、前のサブシーケンスのすべてが次で始まっていないため[1,1,3]です。 0: 0,0,0,0... 1: 1,1,1,1... 2: 0,2,2,2... 3: 1,0,3,3... 4: 0,1,0,4... 5: 1,2,1,0... 6: 0,0,2,1... 7を表すために[1,1] は機能しないことに注意してください。1を表すためにも使用できるためです。ただし、[1]1を入力して出力する必要があります。 入出力 入力は負でない整数です。上記で定義されているように、剰余の最小長シーケンスのシーケンスまたはリストを出力する必要があります。 テストケース: 0: 0 1: 1 2: 0,2 3: 1,0 4: 0,1 5: 1,2 6: 0,0,2 7: 1,1,3 8: 0,2,0 9: 1,0,1 10: 0,1,2 11: 1,2,3 12: 0,0,0,2 30: 0,0,2,0 42: …

3
不完全な指示に従う
あなたの友人が町で最高のレストランへの道順を教えてくれました。一連の左と右のターンです。残念ながら、彼らはあなたがそれらのターンの間にまっすぐに進む必要がある時間について言及するのを忘れていました。幸いなことに、すべてのレストランがある通りの地図があります。たぶん、あなたは彼らがどのレストランを意味したかを理解できるでしょうか? 入力 マップは、ASCII文字の長方形のグリッドとして提供されます。.道は、ある#建物であるAためにZ様々なレストランがあります。左上隅から始まり、東に進みます。例: .....A .#.### B....C ##.#.# D....E ##F### 友人の指示は、LsとRs を含む(潜在的に空の)文字列または文字のリストとして提供されます。 出力 入力文字列の左と右のターンに対応する任意のパスを歩くことができます。ただし、それぞれのパスの前と最後で少なくとも1ステップ先に進む必要があります。特に、文字列がで始まる場合、R一番左の列ですぐに南に行けないことを意味します。また、その場で180°向きを変えることはできません。 最後に到達した建物以外の建物やレストランを歩くことはできません。あなたは左上隅がであると仮定するかもしれません.。 友達の指示で到達できるすべてのレストランを、文字列またはリストとして出力する必要があります。 指示が少なくとも1つのレストランにつながると想定することができます。たとえばL、上記のマップではシングルは無効です。 上記のマップの例: <empty> A R F RR B,D RL C,E RLRL E RLLR C RLLL B RLRR D RLRRRR A,C RLLLRLL B 特にR届かないことに注意してくださいB。 プログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、STDOUT(または最も近い代替)、関数の戻り値または関数(out)パラメーターを介して結果を出力できます。 標準のコードゴルフ規則が適用されます。 追加のテストケース 以下は、Conor O'Brienの好意による大きなマップです(少し修正しました)。 .......Y..........................###### .####.....#.##....##..######....#.###.## B.........#.##.#..##....##...##.#.#P...# .#.#####..#.##..#.##....##.#....#.####.# .#.#...C..#.##...G##..#.##.#....#.#....# .#.#.#.#..#.####.###.#..##.#....#.#.NO.# .#.#A#.#..#.##...F###...##.#.##.#......# …

9
長方形の検出
0および1の複数行の文字列を取り込むプログラムまたは関数を作成します。文字列には他の文字は含まれず、文字列は常に長方形(すべての行に同じ数の文字が含まれます)で、寸法は1×1ですが、それ以外の場合は0'と1'は任意に配置できます。 あなたは、文字列は、オプションの末尾の改行を持っていると仮定して、必要に応じて、あなたは、任意の2つの異なる使用することができ、印刷可能なASCII文字の代わりに文字を0して1。 印刷または戻りtruthy値を場合、すべてのパスが接続されているの領域を両方0のと1のある文字列内の固体の長方形、他の出力falsy値。 パス接続領域の0「いずれかからのS手段0領域内の、すべての他0のだけ上方に移動することによって到達することができるが、上下、左右他方へ0の(としない、斜めに移動しない任意に移動し1、そして文字列の境界の外側に移動しない)。同じ考え方が1パス接続されたリージョンにも適用されます。 の実線の長方形は0、長方形の領域全体がで塗りつぶされてい0ないことを意味します1。同じ考えが塗りつぶされた1長方形にも当てはまります。 バイト単位の最短コードが優先されます。Tiebreakerは以前の回答です。 (ストリングはトロイダル境界条件でラップアラウンドしないことに注意してください。) 例 1)この入力文字列には、3つのパス接続領域があります(2に対して01、1に対して1 1)。00ただし、右下の領域のみが塗りつぶされた長方形であるため、出力は偽になります。 0011 0111 0100 2)この入力文字列には、4つのパス接続領域があります(両方0とに2つ1)。それらはすべて実線の長方形であるため、出力は真実です。 0011 0011 1100 3)この入力には2つのパス接続領域がありますが、そのうちの1つだけが塗りつぶされた長方形であるため、出力は偽になります。 00000000 01111110 00000000 4)この入力には1つのパス接続領域のみがあり、単純な長方形であるため、出力は真実です。 11111111 11111111 11111111 テストケース Tただ、入力文字列の手段truthy以下、F手段がfalsy。 0 T 1 T 00 T 01 T 10 T 11 T 0000000 T 1111111 T 011100100100101100110100100100101010100011100101 T 00 11 T 01 10 …

4
ナインメンズモリスのカウントミルズ
前書き Nine Mens's Morris(Millsとも呼ばれます)は、次のボードでプレイされる2人用のボードゲームです(リンクされているウィキペディアのページからの画像)。 各プレイヤーには、黒と白の色の9人の男性がいます。具体的なルールはこの課題にとって重要ではありませんが、興味があればウィキペディアのページをご覧ください。 チャレンジ 特定のボード状態を表すグリッドを入力として指定し、で合計ミルカウントmを出力し0<=m<=8ます。 同じ色の3人の男性が接続ポイントの直線の列にいるとき、工場を形成します。 b2to f2は男性ではないため、工場ではありません。またd2するd53点を接続する必要があるため工場を形成しないでしょう。 上の画像のボードには、たとえば2つのミルが含まれています。からf2にf61つ、からe3に1つe5。 入力 ボードは、上記のサンプル画像に示すように接続された24ポイントの2Dグリッドとして表されます。この例ではa-g、列にfrom 1-7を、行にfrom numberを使用していますが、24の一意の座標を次の状態のいずれかにマッピングする限り、任意の妥当な入力形式を選択できます。 空の 黒で撮影 白で撮影 具体的な表現はあなた次第で、色の「b」または「w」に制限されません。 これに加えて、入力には追加情報が含まれない場合があります。 その他の注意事項 どのような種類の値でもポイントをマップする必要はありません。入力を2D配列として取得する場合も同様です。ただし、すべてのポイントが使用されているわけではなく、それらの間の接続を考慮する必要があることに注意してください。 入力が空の場合、ゼロを出力する必要があります(空のボード->ミルなし)。 各プレイヤーには9人の男性がいるため、入力には18を超える獲得ポイントは含まれません。 入力の空のポイントを除外することができます。したがって、取得される入力ポイントのみを除外できます。 入力は任意の方法で注文できます。特定の順序に依存することはできません。 入力は常に有効であると仮定することができます。これは、各色の男性が9人を超えないこと、および各ポイントが一意になることを意味します。 ルール ソリューションで使用する入力形式を明確にします。プログラムの実行例を提供することを強くお勧めします。 機能または完全なプログラムが許可されます。 入出力のデフォルト規則。 標準の抜け穴が適用されます。 これはcode-golfなので、バイト数が最小になります。Tiebreakerは以前の提出です。 テストケース ここでの入力形式は、上の例のような座標が最初の要素であり、ポイントの状態が2番目の要素であるタプルのリストです。白で撮影されたポイントは「w」、黒で撮影されたポイントは「b」としてマークされます。他のすべてのポイントは省略され、空になります。 [( "a4"、 "w")、( "b2"、 "b")、( "b4"、 "b")、( "c4"、 "b")、( "d1"、 "w") 、( "d2"、 "w")、( "e3"、 …

12
2つの文字列をインターリーブするすべての可能な方法
最近、stackoverflowでこの質問を見ました。すばらしい質問ですが、この質問には致命的な問題が1つあります。彼らはそれを行うための最良の方法を求めています。たとえば、読みやすく、最も慣用的で、最近のものなど。彼らはそれが重要ではないことを知らないのですか?最小限のコードでそれを行う方法について尋ねる必要があります! 私はその質問がstackoverflowで高く評価されるとは思わないので、私はそれをここで尋ねることにしました。 チャレンジ 任意の2つの文字列をインターリーブするためのすべての可能な方法を生成する、最短のプログラムまたは関数を作成する必要があります。たとえば、2つの文字列が'ab'との'cd'場合、出力は次のとおりです。 ['abcd', 'acbd', 'acdb', 'cabd', 'cadb', 'cdab'] ご覧のとおり、aは常にの前bにあり、c常にの前にありdます。 IOは任意の合理的な形式にすることができます。このpythonコードを使用して、出力を確認してください。(クレジット:JeD) def shuffle(s,t): if s=="": return [t] elif t=="": return [s] else: leftShuffle=[s[0]+val for val in shuffle(s[1:],t)] rightShuffle=[t[0]+val for val in shuffle(s,t[1:])] leftShuffle.extend(rightShuffle) return leftShuffle サンプルIO: shuffle("$", "1234"): ['$1234', '1$234', '12$34', '123$4', '1234$'] shuffle("az", "by"): ['azby', 'abzy', 'abyz', 'bazy', …

14
1の最大長方形を見つける
バックグラウンド 土地を購入して、その上に家を建てたいです。私の家は長方形で、できるだけ大きくなければなりません。しかし、利用可能なプロットには、私が構築できない岩の多いエリアがたくさんあり、プロットに潜在的な家を当てるのに苦労しています。私にプロットを分析するプログラムを書いてほしい。 入出力 入力は、妥当な形式の、少なくとも1×1サイズの長方形の2Dビット配列です。配列は土地のプロットを表します。1sは家を建てることができる「良い」エリアであり、0sは家を建てることができない「岩だらけの」エリアです。 出力は1、入力配列内のsの塗りつぶされた長方形の最大領域になります。それは、私がプロット上で構築できる最大の家の面積を表しています。1入力にs がない場合、出力はであることに注意してください0。 例 入力を検討する 101 011 111 1s の最大の長方形は、右下隅の2×2の長方形です。これは、正しい出力がであることを意味します4。 ルールとスコアリング 完全なプログラムまたは関数を作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 テストケース 0 -> 0 1 -> 1 00 00 -> 0 01 10 -> 1 01 11 -> 2 111 010 111 -> 3 101 011 111 -> 4 0111 1110 1100 -> 4 1111111 …

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