タグ付けされた質問 「sorting」

この課題は、並べ替え、順序付け、またはその他の方法でデータセットを整理することによって解決することを目的としています。

29
番号を並べ替えます。ソルタ
配列を使用せずに数字の数字を並べ替えるという不運に触発されましたが、SOの質問よりも優れたコードゴルフだと思いました。 正の整数を指定して、その整数の桁をソートします。 最低スコアが勝ちます! 0ポイントから始めます。 1文字につき1ポイントを追加します。 使用する配列ごとに20ポイントを追加します。 コードの複数文字列ごとに10ポイントを追加します。(他の操作を行わずに整数に変換される限り、初期入力を除きます。) プログラムが処理できる最大桁数が(マシンではなく)プログラムによって制限されている場合は、32ポイントを追加します。 コードで別の引数を指定して並べ替えの方向を変更できる場合は、10ポ​​イントを減算します(たとえば、降順の並べ替えの場合は0、昇順の場合は1)。 言語はすべて異なりますが、アイデアは反復可能な数字のハッカーを避けることです。 例: 入力:52146729 出力:97654221または12245679 ノート: プログラミング言語が提供する組み込みの並べ替え機能を使用しますが、その並べ替え機能に文字列または配列が含まれる場合は、ペナルティがかかります! ソリューションは、整数を直接取得する関数として、またはargv、ファイルまたはストリームから引数を取得して整数に変換するプログラムとして作成できます。すぐに整数に変換し、それ以上の操作を行わずに元のchar *入力を破棄する限り、ペナルティは適用されません。 このペナルティは、プログラムテキスト内の文字列リテラルだけでなく、文字列または反復可能オブジェクトを間違いなく入力または出力するプログラム機能のすべての部分に適用されます。たとえば、JavaScriptにString.prototype.splitは入力(this)として少なくとも1つの文字列があり、出力として配列があるため、それを使用する場合は+30です。 これらのルールが、初期/最終I / Oではなく、アルゴリズム設計の原則をガイドするようにしました(したがって、注2)。その式がプログラムの最初のエントリポイントである限り、の署名が文字列を返すと言ってint(input())も、ペナルティは適用されるべきではないと思います。プログラムの最終的な出力がある場合は同様に、そして文字列でなければなりません、ペナルティが土壇場の文字列の鋳造作業には適用されません。とは言っても、これはプログラムである必要があるとか、I / Oを出入りさせる必要があるとは、明示的に言ったことはありません。を受け取り、を返す関数は機能し、これらのあいまいさの影響を受けません。inputprint(x)xintint

7
ブラインドランダムソート
ソートアルゴリズムの非常に一般的なパターンを次に示します。 def sort(l): while not is_sorted(l): choose indices i, j assert i < j if l[i] > l[j]: l[i], l[j] = l[j], l[i] これらのアルゴリズムは、インデックスiとjがリストの状態に基づいて慎重に選択されるため、うまく機能しますl。 しかし、が表示されずl、盲目的に選択しなければならなかった場合はどうなりますか?それではリストをどれくらい速くソートできますか? あなたの課題は、の長さのみを指定して、インデックスのランダムなペアを出力する関数を書くことですl。具体的には、出力2つのインデックス、しなければならないi, j、と0 <= i < j < len(l)。関数は任意の長さのリストで機能するはずですが、長さ100のリストでスコアリングされます。 スコアは、上記のパターンに従って一様にランダムにシャッフルされたリストをソートするために必要なインデックス選択の平均数であり、インデックスは関数に従って選択されます。 長さ100の均一にランダムにシャッフルされたリストで、繰り返しのエントリなしで、1000回を超える試行のインデックス選択の平均数を取得して、提出物を採点します。 提出物が明らかに非競争的または終了しない場合、私はより少ないトライアルを実行する権利を留保します。複数の上位の提出物が計算リソースの限界でエラーの範囲内に残っている場合、さらなる計算リソースを負担できるようになるまで、以前の提出物を勝者と宣言します。 Pythonのスコアリングプログラムの例を次に示します。 import random def is_sorted(l): for x in range(len(l)-1): if l[x] > l[x+1]: return …

8
シャッフルブロックで並べ替え
ブロックシャッフルソート ブロックは、ソートシャッフルリストをソートする(むしろ人工的な)方法です。例で示すように、次のように機能します。 [6, 1, 0, 3, 2, 4, -2, -1] Break list into contiguous blocks [6][1, 0][3, 2, 4][-2, -1] Sort each block [6][0, 1][2, 3, 4][-2, -1] Sort blocks lexicographically [-2, -1][0, 1][2, 3, 4][6] Concatenate [-2, -1, 0, 1, 2, 3, 4, 6] 連続ブロックへのパーティションは、任意に選択できます。ただし、ブロックのすべての選択が最後にソートされたリストを生成するわけではありません。 [6, 1, 0, 3, …

10
リストを最小限の行列に並べ替える
一意の厳密に正の整数のソートされていないリストが与えられた場合、最小限で2Dマトリックスにソートします。入力リストは複合長であることが保証されています。つまり、出力行列は必ずしも正方形ではなく、サイズがn x mとn,m > 1。 ここでの「最小ソート」とは、次のことを意味します。 リストを昇順で並べ替えます。 出力行列を可能な限りコンパクトにします-行列の次元の合計を最小化し20ます(たとえば、入力として入力要素の5x4場合、aではなくa または4x5output行列が必要です2x10)。 ソートされたリストの最初の要素から始めて、ソートされた数値を可能な限りマトリックスの左上まで圧縮します。 これは、リストを並べ替えてから、マトリックスの対角線に沿って左上からスライスすることと考えることができます。 例: 入力の1..20場合、出力は次のように5x4または4x5マトリックスです。 1 2 4 7 11 3 5 8 12 15 6 9 13 16 18 10 14 17 19 20 1 2 4 7 3 5 8 11 6 9 12 15 10 13 16 18 14 …

4
実用的な数値を計算する
定義 正の整数nは、すべてのより小さい正の整数がの別個の約数の合計として表される場合に限り、実用的な数値(OEISシーケンスA005153)ですn。 たとえば18、実用的な数値です。除数は1、2、3、6、9、18であり、18より小さい他の正の整数は次のように形成できます。 4 = 1 + 3 5 = 2 + 3 7 = 1 + 6 8 = 2 + 6 10 = 1 + 9 11 = 2 + 9 12 = 3 + 9 = 1 + 2 + 9 = 1 + 2 + 3 …
18 code-golf  sequence  number-theory  code-golf  code-challenge  sorting  c  code-golf  restricted-source  code-golf  natural-language  code-golf  tree-traversal  file-system  popularity-contest  pi  polyglot  code-golf  game  sliding-puzzle  code-golf  game  minesweeper  code-challenge  ascii-art  code-challenge  popularity-contest  graphical-output  code-challenge  popularity-contest  hello-world  underhanded  obfuscation  code-golf  code-golf  function  code-golf  code-golf  code-golf  popularity-contest  rosetta-stone  code-golf  primes  code-golf  restricted-source  popularity-contest  number  sequence  code-golf  restricted-source  popularity-contest  graphical-output  code-golf  popularity-contest  code-golf  primes  code-golf  game  code-golf  math  popularity-contest  popularity-contest  code-generation  popularity-contest  code-bowling  code-golf  popularity-contest  underhanded  code-golf  metagolf 

14
邪悪な目的のための奇妙な選別機
こんばんは! あなたの課題は、一連の数字を完全にソート解除することです。 入力 正確に100個の整数がプログラムに送られます。プログラムは、入力をファイルとして、またはstdinを介して受け入れます。各整数は改行文字で区切られます。 これらの100個の整数は、選択した言語の符号付き整数の最小値から最大値までの範囲になります。 重複する値はありません。値は、順序付けられているか、順序付けられていないか、部分的に順序付けられている可能性があります-プログラムは、各ケースを処理できる必要があります。 出力 出力は、100個の整数で、完全にソートされておらず、それぞれ改行文字で区切られている必要があります。出力は、stdout経由またはファイルへの場合があります。 完全にソートされていないということは、リストが順序付けられた順序で完全にソートされた場合に隣接する値に隣接する値がないことを意味します。 スコア 1文字につき1ポイント、最低スコアが勝ちます。組み込みまたはライブラリの並べ替え機能を使用しないソリューションには、-100のボーナスがあります。組み込みの乱数関数を使用しないソリューションには、-20のボーナスがあります。 この質問をできる限り完全に定義しようとしました。ご質問がある場合は、お問い合わせください。次回の改善方法についてご意見がありましたら、お知らせください。 フォア!

22
数字のペアの説明で並べ替える
正の整数を指定すると、ペアで取得した数字で記述される新しい数字を作成できます(数字の奇数の場合は、先頭に0を追加します)。 例えば: 1234は1つ、2つ、3つの4として読み取ることができます。したがって、1234の出力は2444です。 643の桁数は奇数なので、先頭にゼロを追加して偶数にします。この場合、0643は次のように読み取ることができます:ゼロ6秒、4つの3秒。したがって、出力は3333になります。 (これはOEIS A056967です)。 タスク:正の整数の配列が与えられた場合、数字ペアで記述された値で昇順に並べ替えます。同じ値につながる入力番号の間で順序は関係ありません。 入力:正の整数の配列/リスト/セット。入力の先頭のゼロは許可されず、文字列/数字のリストなどとして入力されます。許可されていません-入力は、言語が使用できる限り整数/数値型に近いものでなければなりません。 出力:上記の方法でソートされた配列で、通常の方法(関数の戻り値/ STDOUT / voidへの叫びなど)で返されます。それらを個別に印刷し、数値、文字列、またはリストとして返すことができます。桁。 テストケース Input Output [19, 91, 2345, 2023] [19, 2023, 2345, 91] [25257, 725, 91, 5219, 146125, 14620512] [725, 5219, 14620512, 91, 146125, 25257] [123130415 3335 91 111111111 528 88] [528, 111111111, 123130415, 3335, 88, 91] [1 21 33 …

23
綴られたシリアル番号を並べ替える
2つ以上の等しい長さの2つ以上のスペルアウトされたシリアル番号のリストがある場合、たとえば [[ "three" , "one" , "four" ], [ "one" , "five" , "nine" ], [ "two" , "six" , "five" ], [ "three" , "five" , "eight" ]] 単語が表す数字でリストをソートします。 [[ "one" , "five" , "nine" ], [ "two" , "six" , "five" ], [ "three" , "one" , "four" …

30
消える要素
文字列Sとインデックスのリストを指定すると、その結果をの新しい値として使用しながら、の各インデックスの要素を削除してX変更SしSますS。 例えば、与えられたS = 'codegolf'とX = [1, 4, 4, 0, 2]、 0 1 2 3 4 5 6 7 | c o d e g o l f | Remove 1 c d e g o l f | Remove 4 c d e g l f | Remove 4 c …
17 code-golf  string  array-manipulation  code-golf  string  ascii-art  code-golf  number  sequence  pi  code-golf  number  array-manipulation  code-golf  string  ascii-art  code-golf  math  number  game  code-golf  math  sequence  polynomials  recursion  code-golf  math  number  sequence  number-theory  code-golf  permutations  balanced-string  code-golf  string  ascii-art  integer  code-golf  decision-problem  hexagonal-grid  code-golf  ascii-art  kolmogorov-complexity  code-golf  number  code-golf  matrix  binary-matrix  code-golf  math  statistics  code-golf  string  polyglot  code-golf  random  lost  code-golf  date  path-finding  code-golf  string  code-golf  math  number  arithmetic  number-theory  code-golf  tetris  binary-matrix  code-golf  array-manipulation  sorting  code-golf  number  code-golf  array-manipulation  rubiks-cube  cubically  code-golf  grid  optimization  code-golf  math  function  code-golf  string  quine  code-golf  ascii-art  grid  code-golf  decision-problem  grid  simulation  code-golf  math  sequence  code-golf  path-finding  code-golf  ascii-art  grid  simulation  code-golf  number  whitespace  code-golf  sequence  code-golf  sequence  code-golf  sequence  integer  code-golf  math  game  code-golf  internet  stack-exchange-api  code-golf  sequence  code-golf  internet  stack-exchange-api  code-golf  math  factoring  code-challenge  sequence  polyglot  rosetta-stone  code-golf  string  browser  code-golf  date  code-golf  base-conversion  code-challenge  cops-and-robbers  hello-world  code-golf  cops-and-robbers  hello-world 

21
piで最初に出現する数字でソートする
負でない数を指定するとn、pin内の最初の出現によっての数字をソートします。 入力は、関数cli引数、またはSTDINを介して、文字列、char []または整数として取得できます。戻り値、終了ステータス、またはSTDOUTを介して出力できます。
17 code-golf  number  sorting  pi 

13
逆順列インデックス
前書き リストの辞書式の順列n個の要素は、0から番号を付けることができ、N!-1.たとえば、3!= 6個の順列が(1,2,3)あろう(1,2,3)、(1,3,2)、(2,1,3)、(2,3,1)、(3,1,2)、(3,2,1)。 順列がリストに適用されると、その要素は順列の数字と同じ順序で並べられます。たとえば、yieldsに順列(2,3,1)を適用しl = (a,b,c)ます(l[2],l[3],l[1]) = (b,c,a)。 順列の逆は、この操作を逆にする順列として定義されます。つまり、順列を適用し、その逆(またはその逆)は配列を変更しません。たとえば、yの逆(2,3,1)は(3,1,2)、(b,c,a)yieldsに適用されるため(a,b,c)です。 また、順列自体に適用される順列の逆は、整数1… nを生成します。たとえば、yields に適用(3,1,2)し(2,3,1)ます(1,2,3)。 私たちは今、関数定義revind(Xをインデックスと順列の逆置換の指標として)のx。(興味がある場合、これはA056019です。) インデックスの順列ので、私は唯一の最後の変更のkリストの項目を場合に限っ 0≤ I < K!、我々は影響を与えずに、リストの先頭に任意の数の要素を追加することができますrevind(Iを)。したがって、リストの長さは結果に影響しません。 チャレンジ あなたのタスクはrevind(x)を実装することです。入力/引数として単一の非負整数xを取り、結果を単一の非負整数として出力/返す完全なプログラムまたは関数を作成します。 入力および出力は0インデックスまたは1インデックスの場合がありますが、これはそれらの間で一貫している必要があります。 インデックスによって順列を生成する、順列のインデックスを返す、または逆順列を見つける組み込み関数は禁止されています。(すべての順列または次の順列を生成するビルトインが許可されます。) 標準のコードゴルフ規則が適用されます。 例 以下の例は0から始まります。 Input Output 0 0 1 1 2 2 3 4 4 3 5 5 6 6 13 10 42 51 100 41 1000 3628 2000 …
17 code-golf  combinatorics  permutations  code-golf  image-processing  brainfuck  encode  steganography  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  ascii-art  fibonacci  code-golf  string  code-golf  sorting  popularity-contest  statistics  code-golf  ascii-art  kolmogorov-complexity  code-golf  code-golf  ascii-art  tic-tac-toe  code-golf  string  code-challenge  classification  test-battery  binary-matrix  code-golf  math  arithmetic  code-golf  ascii-art  random  code-golf  string  code-golf  number  binary  bitwise  code-golf  number  arithmetic  code-golf  math  ascii-art  code-golf  string  ascii-art  code-golf  string  ascii-art  code-golf  string  code-golf  counting  code-golf  number  binary  bitwise  decision-problem  code-golf  array-manipulation  code-golf  tips  brain-flak  code-challenge  quine  source-layout  code-generation  code-golf  linear-algebra  matrix  abstract-algebra  binary-matrix  code-golf  string  palindrome  code-golf  puzzle-solver  sudoku  code-golf  ascii-art  code-golf  graphical-output  internet  code-golf  ascii-art  kolmogorov-complexity  code-golf  math  code-golf  clock 

12
シャミールの秘密の共有
与えられたn(プレイヤーの数)、 t(しきい値)、およびs(秘密)、出力nによって生成された秘密シャミール秘密分散アルゴリズム。 アルゴリズム このチャレンジの目的のために、計算はGF(251)(sizeの有限体251、または整数mod 251として知られる)で行われます。通常、フィールドは、サイズがより大きい素数になるように選択されnます。課題を簡素化するために、フィールドサイズは一定になります。251これは、8ビットの符号なし整数で表現できる最大の素数であるため選択されました。 t-1(包括的)範囲でランダムな整数を生成します[0, 250]。これらのラベル1を通過T-1 。 構築t-1用い番目の多項式をsのパワーの係数として工程1からの一定値とランダムな整数としてx:F(X)= S + X * 1 + X 2 * 2 + ... + X T- 1 * a t-1。 (包括的)範囲内の(f(z) mod 251)それぞれの出力。z[1, n] 参照実装 #!/usr/bin/env python from __future__ import print_function import random import sys # Shamir's Secret Sharing algorithm # Input …
17 code-golf  number-theory  random  cryptography  polynomials  code-golf  number  code-golf  math  number  sequence  code-golf  quine  code-generation  code-golf  arithmetic  set-theory  code-golf  sequence  code-golf  code-golf  string  math  fastest-code  optimization  code-golf  code-golf  internet  stack-exchange-api  code-golf  array-manipulation  code-golf  string  internet  string  code-challenge  internet  test-battery  code-golf  math  pi  code-golf  arithmetic  primes  code-golf  array-manipulation  code-golf  string  code-golf  string  palindrome  code-golf  sequence  number-theory  fastest-algorithm  code-golf  math  number  base-conversion  code-golf  number-theory  sorting  subsequence  search  code-golf  permutations  code-challenge  popularity-contest  code-generation 

20
奇数の逆走
インスピレーション。 仕事 2から2 15の非負整数の指定されたリスト内の奇数の逆実行。 例 0 1 → 0 1 1 3 → 3 1 1 2 3 → 1 2 3 1 3 2 → 3 1 2 10 7 9 6 8 9 → 10 9 7 6 8 9 23 12 32 23 25 27 → 23 …

24
その言葉にサイン2!
その言葉にサイン2! その少し前に、私はその言葉に署名というチャレンジを投稿しました!。課題では、順番に入れ文字(の例えば署名である単語の署名、見つけなければならないthisですがhist)。さて、そのチャレンジは非常にうまくいきましたが、重要な問題が1つありました。それはとても簡単でした(GolfScriptの回答を参照)。そのため、同様の課題を投稿しましたが、より多くのルールがあり、そのほとんどは前のパズルのコメントでPPCGユーザーによって提案されています。だから、ここに行きます! ルール プログラムは入力を受け取り、使用する言語に関係なくSTDOUTまたは同等のものに署名を出力する必要があります。 組み込みのソート関数を使用することは許可されていないため$、GolfScriptのようなものは許可されていません。 マルチケースをサポートする必要があります-プログラムは大文字と小文字の両方の文字をグループ化する必要があります。したがって、の署名は、最初のバージョンのGolfScript回答で指定されたとおりでHelloはeHlloありませんHello。 プログラム用の無料のインタープリター/コンパイラーが必要です。リンクする必要があります。 得点 スコアはバイトカウントです。最も少ないバイト数が優先されます。 リーダーボード これは、通常のリーダーボードと言語ごとの勝者の概要の両方を生成するスタックスニペットです。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 # Language Name, N bytes N提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: # Ruby, <s>104</s> <s>101</s> 96 bytes コードスニペットを表示 var QUESTION_ID=55090;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),e.has_more?getAnswers():process()}})}function shouldHaveHeading(e){var a=!1,r=e.body_markdown.split("\n");try{a|=/^#/.test(e.body_markdown),a|=["-","="].indexOf(r[1][0])>-1,a&=LANGUAGE_REG.test(e.body_markdown)}catch(n){}return a}function shouldHaveScore(e){var a=!1;try{a|=SIZE_REG.test(e.body_markdown.split("\n")[0])}catch(r){}return a}function getAuthorName(e){return e.owner.display_name}function process(){answers=answers.filter(shouldHaveScore).filter(shouldHaveHeading),answers.sort(function(e,a){var r=+(e.body_markdown.split("\n")[0].match(SIZE_REG)||[1/0])[0],n=+(a.body_markdown.split("\n")[0].match(SIZE_REG)||[1/0])[0];return r-n});var e={},a=1,r=null,n=1;answers.forEach(function(s){var t=s.body_markdown.split("\n")[0],o=jQuery("#answer-template").html(),l=(t.match(NUMBER_REG)[0],(t.match(SIZE_REG)||[0])[0]),c=t.match(LANGUAGE_REG)[1],i=getAuthorName(s);l!=r&&(n=a),r=l,++a,o=o.replace("{{PLACE}}",n+".").replace("{{NAME}}",i).replace("{{LANGUAGE}}",c).replace("{{SIZE}}",l).replace("{{LINK}}",s.share_link),o=jQuery(o),jQuery("#answers").append(o),e[c]=e[c]||{lang:c,user:i,size:l,link:s.share_link}});var s=[];for(var t in e)e.hasOwnProperty(t)&&s.push(e[t]);s.sort(function(e,a){return e.lang>a.lang?1:e.lang<a.lang?-1:0});for(var o=0;o<s.length;++o){var l=jQuery("#language-template").html(),t=s[o];l=l.replace("{{LANGUAGE}}",t.lang).replace("{{NAME}}",t.user).replace("{{SIZE}}",t.size).replace("{{LINK}}",t.link),l=jQuery(l),jQuery("#languages").append(l)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",answers=[],page=1;getAnswers();var …

1
正規表現の検証正規表現[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Code Golf Stack Exchangeのトピックになるようにします。 去年閉鎖されました。 入力として正規表現文字列を受け入れ、それが有効かどうかを確認する正規表現を作成します。基本的に、正規表現はそれ自体を検証できるはずです。(無効な正規表現は検証されないため、使用できません.*。;) フレーバーは、よく知られている実装(Perl、sed、grep、gawkなど)によって完全にサポートされている必要があり、それらの実装がサポートするものを完全にサポートしている必要があります。[弁護士が話すことを心配しないでください。私は、スマート***の可能性のある抜け穴を削除しようとしています。] 私はそれをコードゴルフしたいと思いますが、機能が豊富ではないフレーバーを知って使用している人々に優位性を与えるのではないかと心配しています。または、私の心配は根拠がありませんか?
17 code-challenge  code-golf  code-golf  game  sudoku  code-challenge  math  ai-player  code-challenge  sorting  rosetta-stone  code-challenge  code-challenge  programming-puzzle  code-golf  number  code-golf  maze  code-golf  math  regular-expression  code-golf  sequence  code-golf  graph-theory  code-golf  string  word-puzzle  natural-language  brainfuck  metagolf  optimized-output  fastest-algorithm  code-golf  game-of-life  cellular-automata  code-golf  puzzle-solver  grid  code-golf  combinatorics  binary-tree  popularity-contest  code-challenge  code-golf  ascii-art  kolmogorov-complexity  brainfuck  metagolf  code-golf  c  date  code-golf  word-puzzle  crossword  word-search  code-golf  code-golf  quine  code-golf  string  random 

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