Questions tagged «random»

涉及随机数和/或输出的任务。

10
构建一个通过Diehard测试的随机数生成器
尽管这里有许多涉及随机性的代码高尔夫问题,但我还没有看到有人真正要求构建算法伪随机数生成器。有一个要求您生成一个比特流,但是在那个端口上提供的随机性测试不是很严格,也不是代码高尔夫。 您编写的程序将具有一个可调用的函数,该函数将返回一个从0到4294967295的随机整数。此函数不得调用未作为程序一部分编写的任何库或其他函数,尤其是对/ dev / random的调用或语言的内置rand()库。更具体地说,您限于所用语言的基本运算符,例如算术,数组访问和条件流控制语句。 您的程序的分数计算如下: Score = C / R 其中C是代码的长度(以字符为单位),R是生成器通过的Diehard测试次数(如果您的随机数生成器未通过至少一项Diehard测试,则其得分为无穷大且不合格)。如果生成器生成的文件提供的P值范围似乎沿着间隔[0,1)均匀分布,则您的生成器通过了Diehard测试。 要计算R,请使用随机数生成器及其默认种子来生成16 MB的二进制数据文件。该函数的每次调用都返回四个字节。如果您的函数太慢而无法返回字节,则这将导致折衷考虑在测试难度上获得较低的分数。然后,通过Diehard测试运行它并检查提供的P值。(不要尝试自己实现这些;请使用此处提供的内容) 当然,最低分获胜。

30
代码中的99个错误
代码中的99个错误 在计算机科学中对“ 99瓶啤酒”的改编通常是在互联网上重新发布的,在这种计算机中,臭虫增加而不是减少了。示例T恤在这里。 我认为,看到各种各样的语言中潜在的递归和随机数生成并找到最有效的方法将很有趣。 99瓶啤酒还有很多其他挑战,但似乎没有一个越来越多! 挑战 您的程序或函数不应该输入任何内容,然后打印 代码中的99个错误 代码中的99个错误 取下并修补 代码中的X个错误 (空行) 其中X是前一个整数减1加[-15,5]范围内的随机整数。 您可以将负1合并为随机整数,从而允许范围为[-16,4]。 范围可以是互斥的,因此要减去一加(-16,6)或(-17,5)。 随机整数不必均匀分布,而必须全部可能。 该程序始终以99个错误开始。 您可以忽略“ 1个错误”的语法错误。 错误数量为0或负数时,程序应停止并打印 代码中的0个错误 错误绝不能出现负数。结局应该像 代码中的Y个错误 代码中的Y个错误 取下并修补 代码中的0个错误 (空行) 代码中的0个错误 尾随新行是可以接受的。 您的代码可以是完整程序或函数。 没有输入。 输出应为stdout或返回。 只要STDOUT包含必需的文本,日志/ STDERR中的警告/错误就可以。有关更多信息,请参见此处。 这是代码高尔夫球,因此以字节为单位的最短代码获胜。 示例输出 每次粘贴-11错误时粘贴的bin示例输出
47 code-golf  random 

30
显示随机的彩色像素
我一直很喜欢充满随机彩色像素的屏幕。他们很有趣,吸引他们的程序也很有趣。 挑战 用彩色像素填充屏幕或图形窗口。 规则 你的程序必须有一个甚至采摘的机会,所有的颜色(即范围#000000到#FFFFFF),或者可以在系统上显示所有颜色。 您的程序必须继续显示随机像素,直到手动停止(它不能自行终止)。 像素可以是任意大小,只要您的输出至少具有40x40 “像素”即可。 您的程序必须以这样的速度运行,使其可以在运行三分钟后至少替换一次屏幕/窗口上的每个像素。 您的程序必须选择真正随机的颜色和点进行替换,即随机选择所有点/颜色的可能性均等。它不能看起来只是随机的。它必须使用pRNG或更好的pRNG,并且每次输出都不能相同。 您的程序在每次迭代中必须有平等的机会选择所有颜色。 您的程序一次只能替换一个像素。 您的程序无法使用Internet或文件系统(/dev/random和/dev/urandom除外)。 例 如果在随机时间停止输出,则输出可能如下所示: 赢家 每种语言中最短的答案将获胜。玩得开心!

30
每日#7高尔夫:一个明显随机的角色
关于系列 这是“每日随机高尔夫”系列的嘉宾条目。 首先,您可以像对待其他任何代码高尔夫挑战赛一样对待它,并回答它而不必担心系列赛。但是,在所有挑战中都有排行榜。您可以在第一篇文章中找到排行榜以及有关该系列的更多信息。 输入项 没有输入。 输出量 单个字母(不区分大小写),以及可选的尾随换行符。每个字母的选择概率必须为非零,并且所有26个概率必须是不同的。要消除所有歧义,请执行以下操作:Distinct表示不得存在两个彼此相等的概率。 计分 这是代码高尔夫。以字节为单位的最短代码获胜。 有效条目是一个完整的程序或函数,其终止的可能性为零。 字母 为避免混淆,要使用的特定字母是拉丁字母: 要么 ABCDEFGHIJKLMNOPQRSTUVWXYZ 要么 abcdefghijklmnopqrstuvwxyz 您可以选择输出大写或小写。或者,如果有帮助,您可以选择在不同的运行中输出不同的案例。给定字母的概率是在两种情况下(大写或小写)该字母出现的概率。 说明 由于从输出中根本看不出来,因此请对如何获得26种不同的概率作一个清晰的解释。 排行榜 (从这里开始) 显示代码段 var QUESTION_ID=89621,OVERRIDE_USER=20283;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i; body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table …

30
有已知的
美国前国防部长唐纳德·拉姆斯菲尔德(Donald Rumsfeld)著名地推广了“已知的已知物”。在这里,我们将把他的言论提炼成四行节。 具体来说,输出以下文本: known knowns known unknowns unknown knowns unknown unknowns 大小写无关紧要(例如,Known unKnowns可以),可以使用单行尾的换行符,但不允许其他格式更改。这意味着单词之间有一个空格,行之间有LF(59字节)或CR/LF(62字节)。 规则 完整的程序或功能都是可以接受的。如果是函数,则可以返回输出而不是打印输出。 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常用的高尔夫规则都适用,并且最短的代码(以字节为单位)获胜。

12
在保留字词轮廓的同时加扰
这比“ 如何随机化单词中的字母和Cambridge Transposition”要先进得多,因为有关哪些字母可以与哪个字母互换的规则。一个简单的正则表达式在这里是不够的。 众所周知,只要单词的内脏都被打乱,只要它们的首尾字母以及它们的整体轮廓保持不变,仍可以阅读文本。给定可打印的Ascii + Newline文本,请按照以下规则对每个单词进行加扰: 加扰必须是(伪)随机的。 单词是拉丁字符从A到Z的序列。 只有首字母大写。 首字母和尾字母必须保持原样。 加扰时,只有以下组之一中的字母可以交换位置: acemnorsuvwxz bdfhkl gpqy it j (留在原地) 例 易腐烂,而他们的油菜 众所周知,只要其首字和末尾字母加上ovaerll ontliues raemin不能被破坏,txet仍可被读入,但其残言已被扰乱。给定一个patnirlbe Acsii + Nwnliee txet,samrclbe ecah单词anoccdirg表示这些规则: Smncrbliag必须是(pusedo)rondam。 刺是拉丁舞曲A thurogh Z的续集。 只有最初的小提琴才会成为uppcsaere。 必须先保持调音,再保持调音。 当使用sarnclbimg时,只有字母fwllnoiog guorps之一可能会出现以下情况: aneusvrowxmcz bhkfdl gqpy it j (入住plcae) 皇帝

24
混沌是ASCII阶梯
你一无所知 我为 “ 混沌是梯子 ” 做的事情是电视连续剧 “权力的游戏 ”中令人难忘的台词。 这项挑战的目的是从ASCII艺术的混乱中构建阶梯。 挑战 输入项 梯子宽度W >= 3(整数) 台阶高度H >= 2(整数) 梯级数N >= 2(整数)。 输出量 带有水平横档和垂直横档的梯子,全部为1个字符宽。梯子宽度(W)包括两个轨道,梯级高度(H)包括相应的梯级。 所有梯级,包括最上层和最下层,都将在其H-1正上方和正下方具有一条垂直轨道。该示例将使这一点更加清楚。 梯子将作出的可印刷,非空白ASCII字符,即,从包含的范围!(代码点33)到~(码点126)。实际的字符将被选择随机。给定输入,每个字符的随机选择都必须具有非零概率。除此之外,概率分布是任意的。 允许水平或垂直的前导或尾随空白。 例 给定W=5, H=3, N=2,一种可能的输出如下。 x : g h q$UO{ t T 6 < bUZXP 8 T 5 g 请注意,总高度为H*(N+1)-1,因为有N梯级和N+1垂直截面。 附加规则 输入方式和格式像往常一样灵活。例如,您可以按任何顺序输入三个数字,或包含它们的数组。 输出可以通过STDOUT或函数返回的参数进行。在这种情况下,它可以是带有换行符的字符串,2D字符数组或字符串数​​组。 可以提供程序或功能。 禁止出现标准漏洞。 以字节为单位的最短代码获胜。 …

30
StringgnirtSStringgnirtSStringgnirtS
这对您来说是一个相对简单的挑战。 给定长度为N的字符串,向前输出该字符串,然后向后输出,然后向前,然后向后输出……等等。N次。例如,如果您输入的是 Hello! 您应该输出: Hello!!olleHHello!!olleHHello!!olleH 您也可以选择输出一个尾随换行符。 您的提交可以是完整程序,也可以是函数,并且您可以采用任何合理的格式进行输入和输出。例如,您可以从STDIN / STDOUT中获取IO,从函数中获取参数,并从文件中获取返回值,等等。您可以放心地假设输入字符串将不会为空,并且仅包含可打印的ASCII。您必须在一行上输出新字符串。因此,例如,如果最后一个示例的输出是 Hello! !olleH Hello! !olleH Hello! !olleH 这不是有效的解决方案! 这里是更多测试用例: Input: a Output: a Input: abcd Output: abcddcbaabcddcba Input: OK! Output: OK!!KOOK! Input: 4815162342 Output: 4815162342243261518448151623422432615184481516234224326151844815162342243261518448151623422432615184 Input: PPCG Output: PPCGGCPPPPCGGCPP Input: 42 Output: 4224 排行榜 由于这是一个代码高尔夫挑战,因此禁止了标准漏洞,以字节为单位的最短答案胜出!但是,这也是在任何特定语言中答案最短的竞赛。尽管Java答案不太可能会击败perl或某些打高尔夫球语言的答案,但拥有最短的Java答案仍然令人印象深刻。因此,您可以使用此页首横幅查看 所有语言中最短的答案,以及 每种语言的最短答案。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N …
42 code-golf  string  code-golf  math  geometry  data-structures  repeated-transformation  code-golf  number  random  code-golf  math  rational-numbers  code-golf  ascii-art  animation  code-golf  ascii-art  number  code-golf  math  number  code-golf  data-structures  code-golf  string  parsing  code-golf  array-manipulation  random  permutations  code-golf  string  code-golf  parsing  code-golf  string  quine  code-golf  string  parsing  comment  code-golf  string  counting  natural-language  code-golf  string  decision-problem  code-golf  math  code-challenge  metagolf  test-battery  code-golf  string  code-golf  math  number  arithmetic  source-layout  code-golf  number  primes  decision-problem  code-golf  math  arithmetic  code-golf  date  code-golf  string  cryptography  code-golf  code-golf  chess  board-game  code-golf  geometry  grid  puzzle-solver  set-partitions  code-golf  number  natural-language  code-golf  ascii-art  code-golf  math  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  string  natural-language  code-golf  game  board-game  tic-tac-toe  code-golf  ascii-art  hexagonal-grid  code-golf  string  comment  code-golf  internet  code-golf  sorting  code-golf  kolmogorov-complexity  unicode  code-golf  tips  code-golf  string  natural-language  code-golf  string  kolmogorov-complexity  source-layout  hello-world  code-golf  string  kolmogorov-complexity  counting  natural-language  code-golf  random  quine  code-golf  string  math  bitwise  code-golf  permutations  code-golf  string  code-golf  arithmetic 

26
Sheffle tho vawols ureund!
给定的输入串,输出该字符串与所有元音a,e,i,o和u在随机彼此之间交换。 例如,在字符串中this is a test,有4个元音:[i, i, a, e]。这些元音的有效改组可能会[a, i, e, i]产生输出thas is e tist。 关于改组 如果我们认为相等的元音是不同的,则所有改组的可能性均相等。对于上面的示例,这24种混洗是可能的: [i 1,i 2,a,e] [i 1,i 2,e,a] [i 1,a,i 2,e] [i 1,a,e,i 2 ] [i 1,e,i 2,a] [i 1,e,a,i 2 ] [i 2,i 1,a,e] [i 2,i 1,e,a] [i 2,a,i 1,e] [i 2,a,e,i 1 ] [i …

21
轻松记住数字
容易记住但理论上不易制作的数字 您面临的挑战是用任何一种语言生成符合以下条件的统一随机数的程序/功能: 长度为5位数字 有两个单独的重复数字对 一组重复的数字位于开头或结尾,并且数字彼此相邻 奇数被另一对数字包围 两个数字对和另一个数字应该都是唯一的 您的程序可以自行决定是否支持带前导零的数字。如果支持前导零,则必须将其包括在输出中:06088,而不是6088。如果不支持前导零,则根本不应生成诸如06088的数字。 测试用例 接受的输出: 55373 55494 67611 61633 09033 99757 95944 22808 65622 22161 不接受的输出: 55555 77787 85855 12345 99233 12131 abcde 5033 在此pastebin链接中可以找到更多可接受的测试用例。 这些是用这个python程序制作的: 随机导入 对于我在范围(100)中: 如果random.randint(0,100)> = 50:#将对在开始时接触如果为true temp = []#工作数组 temp.append(random.randint(0,9))#附加随机数字 temp.append(temp [0])#再次追加相同的数字 x = random.randint(0,9) 而x == temp [0]: x …

30
这最终将停止……
给定输入字符串S,S按以下方式打印,后跟非空分隔符: 步骤1:S有1/2机会被打印,并且有1/2程序终止的机会。 步骤2:S有2/3机会被打印,并且有1/3程序终止的机会。 步骤3:S有3/4机会被打印,并且有1/4程序终止的机会。 … 步骤n:S有n/(n+1)机会被打印,并且有1/(n+1)程序终止的机会。 笔记 输入字符串仅包含您语言的字符串类型可接受的字符。 可以使用任何非空分隔符,只要它始终相同即可。预期S在程序终止前的最后一次打印之后将打印分隔符。 该程序有1/2机会在打印任何内容之前终止。 尾随新行是可以接受的。 您的答案必须真正地尝试遵守所述的概率。显然,当n大时,这将越来越不正确。正确解释您的答案中的概率是如何计算的(以及为什么它们尊重规范,而忽略伪随机和大数问题)就足够了。 计分 这是代码高尔夫球,因此最短的答案以字节为单位。

30
这个数字是-2的整数次幂吗?
有很多聪明的方法来确定数字是否为2的幂。这不再是一个有趣的问题,因此让我们确定给定的整数是否为-2的整数次幂。例如: -2 => yes: (-2)¹ -1 => no 0 => no 1 => yes: (-2)⁰ 2 => no 3 => no 4 => yes: (-2)² 规则 您可以编写程序或函数,并使用接收输入和提供输出的任何标准方法。 您的输入是一个整数,如果该整数是-2的整数次幂,则输出必须是一个真实值,否则,则必须是一个虚假值。不允许其他输出(例如警告消息)。 通常的整数溢出规则适用:您的解决方案必须能够在语言的假设(或实际)版本中使用任意大整数,默认情况下,所有整数都是无界的,但是如果您的程序由于实现而在实践中失败不支持大整数,这不会使解决方案无效。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 获奖条件 这是一场代码高尔夫球比赛:字节数最少(在您选择的编码中)的答案是获胜者。

30
随机密码生成器
域服务器要求所有员工都具有严格的随机密码,并遵守以下规则: 恰好15个字符。 只能由键盘输入的字符(如下面的代码类型所示)。禁止教销售人员使用ALT + NUMPAD代码。 至少1个小写字母: abcdefghijklmnopqrstuvwxyz 至少1个大写字母: ABCDEFGHIJKLMNOPQRSTUVWXYZ 至少1个数字: 0123456789 至少1个符号: `~!@#$%^&*()_+-={}|[]\:";'<>?,./ 为此,IT已委托并将将“随机密码生成器”分发给所有员工。所有员工都必须使用随机密码生成器。除了上述密码限制之外,Random Password Generator的要求还包括: 它必须能够生成所有允许字符的所有排列。 它必须在屏幕上显示生成的密码。 要求代码尽可能小(以字节为单位)。 请在下周内提交您建议的解决方案。
40 code-golf  random 

19
创建一个太阳系
介绍 这是基于我最近在制作计算机游戏时遇到的一个实际问题,我认为这将使一轮不错的代码高尔夫成为可能。 有七种主要的恒星光谱类别,它们散发出不同的热量。从恒星接收的热量极大地影响了恒星周围行星的地质,这是光谱类别和距恒星距离的一个因素。因此,水星实际上是融化的,海王星冻结了。 我的游戏中的银河是程序生成的,并且为给定的恒星随机选择行星类型实际上是一个真正的“ if声明地狱”! 挑战 您的方法应基于最小热量阈值,最大热量阈值和随机数,从适合于恒星类别的行星类型列表中选择一个行星。为简单起见,此挑战将仅使用G级恒星,就像我们的太阳一样。 输入项 heat介于4到11之间的整数,表示行星从恒星接收的热量。 变数 该表显示了基于的可能行星heat。您的方法应首先根据最小热量和最大热量来缩小可用的选择范围,并且heat应介于两者之间或两者之间。例如,只有10的热量通过的是沙漠,铁和熔岩。 Planet type Heat min Heat max Random Chance Gas Giant 4 9 15 Ice 4 6 10 Ice Giant 4 6 10 Gaia class 5 7 10 Dense Atmosphere 7 9 10 Desert 7 10 25 Iron 7 10 …
39 code-golf  random 

22
自然派#0-摇滚
目标 创建一个接受输入的程序/函数N,检查N随机整数对是否相对质数,然后返回sqrt(6 * N / #coprime)。 TL; DR 这些挑战是仅需要自然和大脑(也许还有一些可重复使用的资源)才能逼近Pi的算法模拟。如果您在僵尸启示录期间确实需要Pi,那么这些方法不会浪费弹药!还有另外八个挑战。检出沙盒帖子以提出建议。 模拟 我们在模拟什么?好吧,两个随机整数是相对质数(即coprime或gcd == 1)的概率是6/Pi/Pi,因此计算Pi的自然方法是挖出两个桶(或少数几个)的岩石。数他们;看看他们的gcd是否为1;重复。这样做后,一对夫妇很多次,sqrt(6.0 * total / num_coprimes)会趋向Pi。如果计算世界末日后的平方根使您感到紧张,请不要担心!有牛顿法。 我们如何模拟这一点? 接受输入 N 请执行以下N次数: 均匀生成随机正整数,i并且j 用 1 <= i , j <= 10^6 如果gcd(i , j) == 1:result = 1 其他: result = 0 取N结果的总和,S 返回 sqrt(6 * N / S) 规格 输入值 …
39 code-golf  math  random  pi  approximation  popularity-contest  code-golf  sequence  number-theory  binary  coding-theory  code-golf  math  3d  code-golf  code-golf  math  number  code-golf  kolmogorov-complexity  code-golf  ascii-art  graphical-output  binary-tree  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation  hexadecimal  code-golf  math  number  set-theory  code-golf  math  arithmetic  number-theory  integer  code-golf  string  kolmogorov-complexity  code-golf  math  sequence  arithmetic  decision-problem  code-golf  code-golf  ascii-art  code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

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.