Questions tagged «sorting»

此挑战旨在通过排序,排序或以其他方式组织一些数据集来解决。

29
排序数字。Sorta
受到命运多亏的不使用数组而对数字进行排序的启发,但我认为它比SO问题更好地编写了代码。 给定正整数,请对该整数排序。 最低分获胜! 从0分开始。 每个字符加一分。 为您使用的每个数组加20点。 为您的代码中的每个多字符字符串加10点。(除了初始输入,只要将其转换为整数而不对其进行任何其他操作即可。) 如果程序可以处理的最大位数受程序限制(与机器相反),则加32点。 如果您的代码可以根据给定的另一个参数更改排序的方向,则减去10分(无论您要使用什么,例如,降序排序为0,升序排序为1)。 每种语言都不尽相同,但其主旨是避免任何形式的可迭代数字黑客。 例: 输入:52146729 输出:97654221或12245679 笔记: 使用您的编程语言提供的任何内置排序功能,但是如果排序功能涉及字符串或数组,则要加分! 您可以将解决方案编写为直接接受整数的函数,也可以编写为接受argv,文件或流中的参数并将其转换为整数的程序。只要立即将其转换为整数并丢弃原始char *输入而无需对其进行任何进一步的操作,就不会受到任何惩罚。 处罚不仅适用于程序文本中的字符串文字,而且适用于程序功能的任何可能输入或输出字符串或可迭代的部分。例如,JavaScript String.prototype.split至少有一个字符串作为输入(this)和一个数组作为输出,因此使用+30即可。 我试图使这些规则指导算法设计的原理,而不是初始/最终I / O(因此请注意#2)。我认为,int(input())即使input的签名说它返回的是字符串,只要该表达式是程序的初始入口点,也不应适用该惩罚。同样,如果程序的最终输出是print(x)并且x必须是字符串,则惩罚不适用于最后一个字符串的强制转换操作。话虽如此,我从来没有明确地说过这必须是一个程序或I / O必须来自或离开的地方。接受int并返回的函数将起作用int,并且不会遭受这些歧义的困扰。

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。具体来说,您必须输出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输入元素作为输入,需要a 5x4或4x5输出矩阵,而不是a 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 …

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分,最低分获胜。不使用任何内置或库排序功能的解决方案,则奖励为-100。对于没有内置随机数功能的任何解决方案,奖励为-20。 我试图尽可能完整地定义这个问题。如果您有任何问题,请询问。如果您对我下次如何做有任何评论,请告诉我。 前面!

22
按数字对描述的内容排序
给定一个正整数,我们可以形成一个新的数字,该数字由成对的数字描述(对于带有奇数数字的数字,添加前导0)。 例如: 1234可以读为1 2、3 4s-因此,1234的输出为2444。 643的位数为奇数,因此添加前导零使其成为偶数。然后,将0643读取为:零6s,四个3s,因此输出为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 …

23
排序拼写清楚的序列号
给定两个或两个以上长度相等且大于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 


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)。 将排列应用于列表时,其元素的排列顺序与排列中的数字相同。例如,将置换(2,3,1)应用于l = (a,b,c)yield (l[2],l[3],l[1]) = (b,c,a)。 排列的逆定义为颠倒此操作的排列,即应用排列,然后其逆(反之亦然)不会修改数组。例如,(2,3,1)is 的逆(3,1,2),因为将其应用于(b,c,a)yields (a,b,c)。 同样,应用于排列本身的排列的逆值会产生整数1… n。例如,应用(3,1,2)到(2,3,1)产率(1,2,3)。 现在,我们将函数revind(x)定义为索引为x的排列的逆排列的索引。(如果您有兴趣,这是A056019。) 由于与指数置换我只修改了最后ķ列表中的项目当且仅当 0≤ 我 < ķ!,我们可以添加任意数量的元素到列表的开始,而不会影响revind(我)。因此,列表的长度不影响结果。 挑战 您的任务是实现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 …
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由Shamir的秘密共享算法生成的秘密。 算法 出于这一挑战的目的,将在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 * A 2 + ... + X 叔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 is taken …
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上签名! 不久前,我发布了一个名为Sign that word的挑战!。在挑战中,您必须找到单词的签名,即按顺序排列的字母(例如,thisis 的签名hist)。现在,这个挑战做得很好,但是存在一个关键问题:这太简单了(请参阅GolfScript答案)。因此,我也发布了类似的挑战,但是规则更多,PPCG用户在上一个难题的评论中建议了大多数规则。所以,我们开始! 规则 您的程序必须接受输入,然后将签名输出到STDOUT或任何您使用的语言的等效语言。 您不允许使用内置的排序功能,因此不允许使用$GolfScript之类的东西。 必须支持大写字母-您的程序必须将大写和小写字母组合在一起。因此,的签名Hello是eHllo,而不是Hello第一个版本的GolfScript回答所给的签名。 您的程序必须有一个免费的解释器/编译器,您应该链接到该解释器/编译器。 计分 您的分数就是字节数。最低字节数获胜。 排行榜 这是一个堆栈片段,用于按语言生成常规排行榜和获胜者概述。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # 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 …

1
正则表达式验证正则表达式[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 2年前关闭。 构建一个将接受正则表达式字符串作为输入的正则表达式,并检查其是否有效。基本上,您的正则表达式应该能够验证自己。(任何无效的正则表达式都不应进行验证,因此您不能使用.*。;)) 您的风味必须得到众所周知的实现(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 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.