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

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

8
K-meansアルゴリズムのゴルフ
K-meansは標準の教師なしクラスタリングアルゴリズムであり、一連の「ポイント」といくつかのクラスターKが与えられると、各「ポイント」をK個のクラスターのいずれかに割り当てます。 K平均の疑似コード K-meansには多くのバリアントがあることに注意してください。以下で説明するアルゴリズムを実装する必要があります。同じ初期点が与えられた場合にこのアルゴリズムと同じ結果が得られる限り、アルゴリズムにいくつかのバリエーションを持たせたり、組み込みを使用したりできます。 この課題では、すべての入力が2D平面上の点になります(各点は、xとyの座標で表されます)。 Inputs: K, the number of clusters P, the set of points Choose K points of P uniformly at random Each chosen point is the initial centroid of its cluster Loop: For each point in P: Assign to the cluster whose centroid is the nearest (Euclidean distance) …

5
特定の文字列に収まるように単語を並べ替える
文字列と単語のセットを指定して、不要な文字を削除することで文字列内で見つけられるように、単語の順序を出力します。単語セット内で単語が複数回出現する場合があります。入力文字列とすべての単語は、それぞれ1〜1000個の小文字で構成されます。ドロップされる文字は、単語の内部または単語の間にある場合があります。 プログラムまたは関数は、文字列と単語をリスト、文字列、またはSTDINから受け入れることができ、すべての単語をリストまたは文字列の出力として正しい順序で出力する必要があります。正しい解が複数ある場合は、そのうちの1つだけを出力します。考えられる正しい解決策がない場合は、空のリストまたは空の文字列を出力します。 例: dogcatfrog cat frog dog -> dog cat frog xxcatfixsxhingonxgrapexxxfishingcxat cat grape catfish fishing -> catfish grape fishing cat dababbabadbaccbcbaaacdacdbdd aa bb cc dd ba ba ba ab ac da db dc -> da ab ba ba ba cc bb aa ac dc db dd flea antelope -> …
10 code-golf  string 

11
彼がN単位の作業を完了するまでに最低何日かかりますか?
人はN作業単位を完了しなければなりません。仕事の性質は同じです。 仕事のこつを得るために、彼は初日に1つの作業単位のみを完了します。 彼は作業の完了を祝うことを望んでいるので、最終日に1つの作業単位を完了することにします。 彼は唯一完了させることができx、x+1またはx-1日中の仕事の単位、x前日に完了した作業の単位です。 あなたの仕事は、彼が作業単位を完了するのにかかる最小日数を計算するプログラムまたは関数を作成することNです。 サンプル入力と出力: input -> output (corresponding work_per_day table) -1 -> 0 [] 0 -> 0 [] 2 -> 2 [1,1] 3 -> 3 [1,1,1] 5 -> 4 [1,1,2,1] or [1,2,1,1] 9 -> 5 [1,2,3,2,1] 13 -> 7 [1,2,2,2,3,2,1] 入力はSTDIN、関数の引数として、または関数の引数として、または適切な方法で取得できます。 出力は、印刷したり、関数の結果として、または適切な方法で出力したりできます。 これはコードゴルフです。最短のソリューションが優先されます。

2
リストを分割します!
この課題では、リストにパーティションを作成する必要があります。パーティションには、最大サイズ、最小サイズ、および適切なサイズがあります。(min,pref,max) この課題では、表記を使用してサイズを示します。 パーティション設定に不慣れな方のために、次のリストは3の部分に分割されています。 [0..9] -> [[0,1,2],[3,4,5],[6,7,8]] リストが均等に分割できない場合は、パーティションを可能な限り推奨サイズに近づける必要があります[0..10], (2,4,5) -> [[0,1,2,3],[4,5,6],[7,8,9]]。[[0,1,2,3],[4,5,6,7],[8,9]]後者の方が好ましい長さですが、この分割はに優先します。正式には(partitionLength-preferredSize)^2、各パーティションの合計を最小化する必要があります。 パーティションの長さの順序は重要ではありません:については[0..5], (2,3,3)、いずれか[[0,1,2],[3,4]]または[[0,1],[2,3,4]]作品を。パーティションを作成できない場合は、空の配列を返します[0..7], (4,4,5) -> []。 あなた1<=min<=pref<=maxは、あなたに渡された配列が空でない整数の配列であると仮定することができます。配列は常に最初の引数になります。min、max、およびprefは、任意の順序で、タプルまたは個別の引数として受け入れることができます。 プログラムは数秒で実行する必要があります。基本的に、境界内で可能なすべてのパーティションサイズを反復することはできません。 テストケース: [1], (1,3,4) -> [[1]] [100], (1,2,3) -> [[100]] [1,2], (1,1,2) -> [[1],[2]] [1,2], (1,2,2) -> [[1,2]] [1,2], (1,3,3) -> [[1,2]] [1,2,3], (1,2,3) -> [[1,2],[3]] or [[1,2,3]] [1,2,3,4], (1,3,4) -> [[1,2,3,4]] [1,2,3,4,5], (3,3,4) …

7
独自のジム演習を作成し、irlに従ってください
一緒に運動しましょうか。単に棒人間の動きに従ってください。あなたはどんな棒人間を尋ねますか?これから作成します! 整数のみを含む文字列入力が可能なプログラムを作成し、間隔を空けて次の9つの棒グラフを出力します。 @ \@/ |@_ _@| @/ \@ |@| \@\ /@/ /|\ | | | | | | | | / \ / \ / \ / \ /|\ /|\ / \ / \ / \ 1 2 3 4 5 6 7 8 9 これによりアニメーションが生成され、irlに沿って追跡できます。 以下は、入力が " 123245762"の場合に作成される出力の例です。 いくつかのルール: …

3
420 <s> Blaze </ s> Golf It
これは非常に単純な課題ですが、(私は)楽しい課題です。 仕事 今のいずれかの月がある場合は4、その日は20、(午前と午後に)時間がある4と分がある20、または微小である4第二は20、このASCIIアートを印刷します: . .:. :|: .:|:. ::|:: :. ::|:: .: :|:. .::|::. .:|: ::|:. :::|::: .:|:; `::|:. :::|::: .:|::' ::|::. :::|::: .::|:; `::|::. :::|::: .::|::' :::|::. :::|::: .::|::; `:::|::. :::|::: .::|::;' `::. `:::|::. :::|::: .::|::;' .:;' `:::.. `;::|::. :::|::: .::|::: ::::; `:::::. ':|::. :::|::: .::|:' ,::::;' `:::::. ':|:::::|:::::|:' :::::;' …

5
配列を真ん中から印刷する
これはコードゴルフの質問です。 与えられた整数sおよびnは、-sからsまでの値を取る長さnのすべての配列を出力することです。唯一の工夫は、次の順序で出力する必要があることです。 長さがnのすべてゼロの配列。 以前に出力した配列を除く、要素が-1から1までの長さnのすべての配列。 以前に出力した配列を除く、-2〜2の要素を持つ長さnのすべての配列。 そして、前に出力した配列を除いて-sからsまでの要素を持つ長さnのすべての配列に到達するまで続けます。 1行に1つの配列を出力する必要があります。スペースまたはカンマで区切ることができます。 以下は、配列/リスト/タプルを正しい順序で出力する非準拠のpythonコードです。 import itertools s = 3 n = 2 oldsofar = set() newsofar = set() for i in xrange(s): for k in itertools.product(range(-i,i+1), repeat = n): newsofar.add(k) print newsofar - oldsofar oldsofar = newsofar.copy() print "***" セット減算または同等の機能を実行しない回答に対する追加の栄光(および私からの賛成票)。

1
クロス、ノーズなし
Tic Tac Toeが解決されたゲームであることは誰もが知っています。ただし、Only-XのMisèreバージョンは興味深い代替手段を提供します。 このバージョンのゲームでは、両方のプレイヤーがボード上でXをプレイし、連続して3つになることを避けます。これについて詳しく知りたい場合は、Numberphileがこのコンセプトに関する素晴らしいビデオを公開しています。 ミゼールクロスのボードが与えられたら、最適な動きをします。 ボードは、3文字の3行で、Xまたはです。したがって: X X X XX 有効なボードです。入力と出力が同じ形式を使用している限り、これを任意の便利な形式で使用できます。形式には次のものが含まれます(ただし、これらに限定されません)。複数行の文字列(オプションで末尾の改行)。Xまたはである文字の2D配列。各位置が再生されたかどうかを表すブール値の1Dフラット化配列。 最適な移動とは、最適なプレーを継続するか、損失を可能な限り長くすることで勝利することを保証する移動であり、次のルールによって定義されます。 3つ続けて作成することは避けてください。 あなたが最初に行くなら、真ん中でプレーします。 唯一の占有スペースが中央である場合、残りのスペースのいずれかでプレイします。 中央のマスが占有されておらず、外側のマスが占有されている場合は、対戦相手の最後のプレイの反対側でプレイする 真ん中の正方形が占められており、外側の正方形が占められている場合は、前の動きから「騎士の動き」(反対側、1オーバー)を離してください。 失うことのない残りのマスが残っていない場合は、残りのマスのいずれかでプレイします。 [注:これは1つの場合に最適ではないことが証明されていますが、とにかくこのアルゴリズムを使用する必要があります。] 以前の動きはすべて最適だったと思うかもしれません。したがって、最初のサンプルボードは有効な入力ではありません。対戦相手の動きは最適な場合とそうでない場合があります。 ゲームが終了した場合(つまり、3つ続けて行われた場合)の動作は未定義です。 これはcode-golfなので、バイト単位の最短の回答が優先されます! 最適な移動のみを使用した1つの可能なパスは次のとおりです。 [ ] [ ] [X ] [X ] [X ] [X ] [XX ] [ ]-&gt;[ X ]-&gt;[ X ]-&gt;[ XX]-&gt;[ XX]-&gt;[ XX]-&gt;[ XX] [ ] [ …
10 code-golf  game 

7
ローマ数字の線分
入力として1..3999の範囲の整数を受け入れ、その整数を標準のローマ数字で表すために必要な線分の数を返すプログラムまたは関数を記述します(したがって、VMではなくXLを使用します)。例: 1 -&gt; 1 4 -&gt; 3 5 -&gt; 2 9 -&gt; 3 10 -&gt; 2 40 -&gt; 4 50 -&gt; 2 90 -&gt; 3 100 -&gt; 1 400 -&gt; 3 500 -&gt; 2 900 -&gt; 5 1000 -&gt; 4 ローマ数字変換のビルトインは許可されていますが、上記のリストから残りの最大数を繰り返し減算することで、ビルトインなしで問題を解決できます。例:1234 = 4 + 1 + 1 + 2 + …
10 code-golf 

1
文字を接続します
この小さなゲームに触発されました。 チャレンジ 次のように、グリッドの初期位置(常に5x5)を入力として指定します。 -ABCD -A--- ---C- ---BD --E-E すべての空の-スペースを削除して、文字(すべて同じ文字)を接続する必要があります。文字は常にになりますA,B,C,D and E。 すべての文字のペアは、直角に曲がる単一の非分岐線で接続する必要があります(まったく同じ文字を使用して線を描きます)。 入力は、各開始文字が正確に2回あることが保証されており、常にすべての開始文字AEを持ちます。 入力は、標準入力、または関数への引数としての唯一の文字列、または文字の配列/行列/リストから読み取ることができ、コーディング言語に最も便利な方法です。 これはコードゴルフなので、バイト単位の最短コードが勝ちます! 例 各問題に対する解決策は1つだけではありませんが、ルールはすべてに適用されます(空白や区切り文字はありません)。そして、入力には少なくとも1つの正しい出力があることが保証されています。 文字Aを接続してみましょう。 AABCD AA--- AA-C- AA-BD AAE-E 次に、文字Bを接続します。 AABCD AAB-- AABC- AABBD AAE-E 次に、文字Cを接続します。 AABCD AABC- AABC- AABBD AAE-E 次に、文字Dを接続します。 AABCD AABCD AABCD AABBD AAE-E そして、最後にE: AABCD AABCD AABCD AABBD AAEEE 別のサンプル input: E--E- …
10 code-golf 

1
人にやさしいファイル名の検出
前書き ファイル名は乱暴に単純なものから至るまで、物事を変えることが可能blah.txtに303549020150514101638190-MSP0.txt。前者は通常人間が生成し、後者はしばしば機械で生成されます。ファイルが「人にやさしい」と見なされるかどうかについて、知識に基づいた推測を行う単純な関数があればいいのではないでしょうか。 削除されたEduard Florinescuの投稿に触発されました。彼のアイデアは良かったが、少し肉付けする必要があった。 チャレンジ 文字列を取得できる任意の言語でプログラムまたは関数を記述し、この課題で定義されているように、「人間に優しい」と見なされるかどうかを判断します。 その他の詳細とルールは次のとおりです。 入力は、95の印刷可能なASCII文字で構成される文字列になります。 「人に優しい」とはこのように定義されるものとする: 考慮事項から拡張子を除外します。拡張子は、最後のピリオドの後に一連の英数字(最低1、最大6)が続くものとして定義されます。 文字列の長さの半分(拡張子を除く)は、以下の定義された文字のグループ(結合)で構成できます。 8桁を超える10進文字。 16文字以上の16進文字(大文字または小文字)(文字と数字で構成され、文字の3分の1以上が数字である必要があります)。 %+=続けて12文字以上のBase64文字(特殊文字として使用)(文字と数字で構成され、大文字と小文字が混在し、文字の3分の1以上が大文字である必要があります)。 上記のグループのいずれかが定義で重複している場合(base64として認定されているが、8桁が連続しているグループなど)、除外する最も長いグループを選択します。 文字列が「人にやさしい」と見なされるかどうかに応じて、出力は真実または偽の値である必要があります。 有効な入力のみが使用されると仮定します。エラー処理について心配する必要はありません。 勝者は最短のプログラム/機能によって決定されます。少なくとも7日以内に、または十分な数の提出があった場合に、選考されます。引き分けの場合、先に来た答えが優先されます。 例 以下に、コードで処理できる入力と出力の例をいくつか示します。 "results_for__michael_greer.txt.zip" =&gt; true "Georg Feuerstein - Connecting the Dots.pdf" =&gt; true "M People - Search for the Hero-ntuqTuc6HxM.mp4" =&gt; true "index.html?v=QTR4WGVTUzFsV3d8NHxvcmlnaW5hbHx8MTExMTAxBHxodHRwOi8vLCwsLHRyLDcsMA%3D%3D.html" =&gt; false "ol2DCE0SIyQC(173).pdf" =&gt; false "d41d8cd98f00b204e9800998ecf8427e.md5" =&gt; false "12792331_807918856008495_7076645197310150318_o.jpg" …

16
Thue-Morseシーケンスの違いを出力する
注:「否定する」とは、すべて1をゼロに置き換えることを意味します(つまり、ビットごとの否定) Thue-Morseシーケンスは01101001のようになります。 生成方法は次のとおりです。 最初は0から始めます。残っているものを無効にし、最後に追加します。 だから、取る0。それを否定し、それを最後に追加します-01 次にそれを取り、それを否定して最後に追加します- 0110 等々。 これのもう1つの興味深い特性は、ゼロ間の距離が「不合理な」非反復文字列を作成することです。 そう: 0110100110010110 |__|_||__||_|__| 2 1 0 2 01 2 &lt;------------Print this! nを入力すると、文字列の最初のn桁を出力するプログラムを作成できますか? これはコードゴルフなので、最短バイト数が勝ちます!

13
置換を伴う組み合わせを生成する
n個の要素のセットから、サイズkの置換(または繰り返しの組み合わせ)のあるすべての組み合わせをリストします。 置換との組み合わせは、その中のすべての要素がn個の要素のセットにも含まれる、順序付けされていないマルチセットです。ご了承ください: 順不同です。したがって、異なる順序で以前に印刷されたセットは、再度印刷されません。 マルチセットです。同じ要素を複数回表示できます(必須ではありません)。これは、交換との組み合わせと通常の組み合わせの唯一の違いです。 セットは正確にk個の要素を持つ必要があります。 代わりに、それはn個の要素のそれぞれをk回含むマルチセットのサイズkのサブセットでもあります。 入力がなければならないのいずれかのn及びkの要素が最初であり、nは正または負でない整数、またはn個の要素及びKあなたが引き受けることができる、n個の要素は、互いに全て異なっています。 出力は、指定されたセットのサイズkで置き換えられたすべての組み合わせのリストである必要があります。それらと各要素の要素を任意の順序で印刷できます。 置換を伴う組み合わせを生成するビルトインは使用できません。しかし、組み込みを使用して、通常の組み合わせ、順列、タプルなどを生成できます。 これはコードゴルフで、最短のコードが勝ちます。 例 Input: 4 2 Output: [0 0] [0 1] [0 2] [0 3] [1 1] [1 2] [1 3] [2 2] [2 3] [3 3]

14
N次元配列を反転する
細部 整数のみを含む配列(またはリスト)を指定して、すべてのサブ要素を逆にした配列を返すか出力する関数またはプログラムを記述します。つまり、最も深い配列のすべての要素を逆にし、次に2番目に深い配列にするなどです。次元を指定する必要はありませんが、関数またはプログラムは、プログラミング言語のネイティブ形式のギザギザの配列に対して機能する必要があります。 例 この: [[1,2], [3,4]] これになるでしょう: [[4,3], [2,1]] この: [[[ 1, 2, 3], [ 4, 5, 6], [ 7, 8, 9]], [[10,11,12], [13,14,15], [16,17,18]], [[19,20,21], [22,23,24], [25,26,27]], [[28,29,30], [31,32,33], [34,35,36]], [[37,38,39], [40,41,42], [43,44,45]], [[46,47,48], [49,50,51], [52,53,54]]] これになるでしょう: [[[54,53,52], [51,50,49], [48,47,46]], [[45,44,43], [42,41,40], [39,38,37]], [[36,35,34], [33,32,31], [30,29,28]], [[27,26,25], [24,23,22], [21,20,19]], …
10 code-golf 

9
D2でのゴルフのヒント
Dでゴルフをするための一般的なヒントはありますか?私は、コードゴルフの問題全般に適用できる、少なくともある程度Dに固有のアイデアを探しています(たとえば、「コメントの削除」は回答ではありません)。回答ごとに1つのヒントを投稿してください。
10 code-golf  tips 

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