Questions tagged «random»

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

1
小狗命令
该puppy实用程序将文件名作为输入,并且完全按照您希望小狗执行的操作:将它切碎! 如何切碎 用牙齿撕开页面将输入文件换行。 用爪子撕开每一页对于每一行(不包括换行符),选择一个随机整数,n例如2 <= n <= # of characters in the line。将行拆分n为随机长度的非空非重叠子字符串。 将碎片分散在整个地板上在当前目录中,将每行的每个子字符串输出到唯一的随机文件名([a-zA-Z0-9]仅,任何一致的扩展名,包括none和length 1 <= n <= 12)。只要不干扰提交的运行,就可以覆盖当前目录中的现有文件(包括输入文件,如果它位于当前目录中)。 澄清说明 永远不会有可能耗尽所有可能的文件名的输入。 文件将仅包含可打印的ASCII(序号32-127)和换行符,并将使用UNIX / Linux样式的行尾(LF,而不是Windows样式的CRLF)。 只要每个输出文件都具有尾随换行符,就可以接受输出文件中的尾随换行符,但这不是必需的。您可以选择输入文件是否包含尾随换行符。 输入中的每一行将至少包含2个字符。 所选的随机值必须从给定的一组可能值的均匀随机分布中选择。 如果您的语言无法执行文件I / O,则可以将输入文件的内容作为输入,然后输出代表输出文件名和该文件文本的字符串对。但是,您提交的内容将不符合获奖资格。 例 参考实现: #!/usr/bin/env python3 import random import string import sys fname = sys.argv[1] with open(fname) as f: txt = f.read().rstrip().split('\n') …

30
震动探针的死亡:很多骰子
在网络漫画《达斯与机器人》(Darths&Droids)中,皮特(Pete)在该漫画所基于的虚构角色扮演活动中扮演R2-D2,曾声称(警告:链接的漫画中潜在的破坏者),他与帕纳斯塔科里亚(Phanastacoria)的失落宝珠一起操纵了他震动探针,他现在可以抛出1048576d4损坏。(通用汽车公司既没有证实也没有否认这一点。)由于应该有明显的理由,几乎没有人会真正有耐心掷出那么多骰子,所以编写一个计算机程序为他掷骰子,并以合理的价格输出掷出的总价值。格式。条目将根据程序大小(最短的程序,字节数,获胜次数),整体语言和每种语言进行排名,并且会中断运行时间。答案可能是完整的程序,也可能是函数定义。 每种语言的分数 腐霉菌 Maltysen-8个字节* Jakube-10个字节 杀伤人员地雷 Alex A-10个字节 贾姆 优化器-11个字节 Ĵ --12个字节** 剪辑10 Ypnypn-12个字节** ķ JohnE-13个字节 Ti-84 BASIC SuperJedi224-17字节* [R MickyT-23个字节 八度/ MATLAB Oebele-24个字节 PARI / GP 查尔斯-25个字节** Wolfram / Mathematica LegionMammal978-27字节 佩尔 Nutki-29个字节 AsciiThenAnsii-34字节 红宝石 Haegin-32字节** ConfusedMr_C-51个字节** 准将 标记-37个字节** 的PHP Ismael Miguel-38个字节 VBA 肖恩·柴郡-40字节** 电源外壳 Nacht-41个字节** Java脚本 拉尔夫·马歇尔-41字节 edc65-54字节(要求并非所有浏览器都提供ES6功能。) …
20 code-golf  random 

13
滚龙与地下城骰子
我想玩龙与地下城,但我没有任何骰子!您的挑战是掷出一些D&D骰子。 Backus-Naur格式的输入格式规范为: <valid-input> ::= <opt-integer> "d" <integer> <opt-modifier> <opt-integer> ::= | <integer> <opt-modifier> ::= | "+" <integer> <integer> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | <integer> <integer> 之前的可选整数 d是掷骰子的数量;它必须至少为1,1如果未提供,则默认为。 紧随其后的必需整数 d是每个芯片的边数;至少应该是1。每个骰子的边都是从开始的不同的连续正整数1。 可选修饰符可以是 +0,+0如果未指定,则默认为。 例如,对于input 2d10+5,您生成两个从1到10(含1和10)之间的随机数,将它们加在一起,然后加5。然后将输出结果。 如果您收到无效的输入,如2d,d20+,0d4,2d5+1+2,2+2,或其他任何东西,不适合这种格式,你必须输出“ …
20 code-golf  random 

27
为*写翻译
任务很简单。为*语言编写口译员。 这是Wiki的更大链接。 只有三个有效的*程序: * 打印“ Hello World” * 打印0到2,147,483,647之间的随机数 *+* 永远运行。 根据此问题的规范,第三种情况必须是无限循环 输入: 可以通过我们的标准I / O规则通过任何可接受的输入方法进行输入 它将永远是以上程序之一 输出: 第一种情况应打印准确Hello World,带有或不带有尾行。 对于第二种情况,如果您的语言的整数最大值小于2,147,483,647,请使用您的语言的整数最大值 根据我们的标准I / O规则,第一种情况和第二种情况可以打印到任何可接受的输出。 第三种情况不应给出任何输出。 得分: 因为这是代码高尔夫球,所以最短的答案(以字节为单位)获胜。
20 code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 

7
滚动奎因骰子
创建一个输出自身的程序。 但是,如果源代码重复了n次(意味着将源代码的副本连接到末尾n-1次),则输出原始源代码的概率应该为1 / n,输出源代码的概率为1 / n。源代码重复两次,输出源代码的1 / n概率重复3次,...,输出源代码的1 / n概率重复n次。 例如,如果您的程序是foobar,则它应始终准确输出foobar。但是,如果运行foobarfoobarfoobarfoobar的话,应该是每一个输出的1/4的机会foobar,foobarfoobar,foobarfoobarfoobar和foobarfoobarfoobarfoobar。 每个可能的输出的分布应该相等 除了应用标准I / O方法和禁止标准漏洞外,还应用标准quine规则(无法访问其自己的源等)。 这是代码高尔夫球,所以最短答案以字节为单位

30
从数组中随机选择
这个挑战相当简单: 给您一个正整数(不包括0)整数数组,并且必须从该数组中选择一个随机元素。 但是这是一个变数: 选择元素的概率取决于整数的值,这意味着随着整数的变大,它被选中的概率也变大了! 例 给你数组[4, 1, 5]。 在这种情况下,选择4的概率等于4除以数组中所有元素的总和4 / ( 4 + 1 + 5 ) = 4 / 10 =40%。 选择1的概率为1 / 10或10%。 输入项 正整数数组。 输出量 如果使用方法,则返回所选的整数,或将其直接打印到stdout。 规则 这是代码高尔夫球,因此任何语言中以字节为单位的最短代码都胜出。 禁止出现标准漏洞。

8
反向插入排序
目的 根据“ 插入排序”对列表进行排序的动作,生成原始的加扰列表。原始列表将包含从0到N-1(包括)的所有数字,其中N输入的大小。 输入项 一个包含对列表进行排序的必要动作的列表。每个值代表由原始数字(加扰的数字)移位到其右位置的插槽数量,请记住,此过程是从左到右。输入列表 中(0索引)位置的值i将介于0和之间i。 您不需要处理无效的输入,在这种情况下,任何行为都是可以接受的(崩溃,无限循环等)。 输出量 混乱的名单 逐步生成动作 Scrambled List | Moves to sort [4,0,2,1,3,5] | [0, , , , , ] #4 stay in place [4,0,2,1,3,5] | [0,1, , , , ] #0 is moved 1 slot to the left [0,4,2,1,3,5] | [0,1,1, , , ] #2 …
19 code-golf  array-manipulation  code-golf  code-golf  animation  code-golf  restricted-source  code-golf  java  code-golf  decision-problem  graph-theory  code-golf  conversion  electrical-engineering  code-golf  ascii-art  code-golf  string  substitution  code-golf  math  code-golf  string  set-theory  code-golf  code-golf  compile-time  code-golf  kolmogorov-complexity  binary  code-golf  sequence  cops-and-robbers  code-golf  subsequence  card-games  code-golf  sequence  primes  code-golf  code-golf  number  graphical-output  music  code-golf  ascii-art  code-golf  string  lambda-calculus  code-golf  string  code-generation  code-golf  unicode  code-golf  math  combinatorics  code-golf  balanced-string  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-challenge  fastest-code  chess  code-golf  math  graphical-output  code-golf  string  hello-world  animation  code-golf  number  arithmetic  code-golf  integer  code-golf  code-golf  combinatorics  code-golf  kolmogorov-complexity  graphical-output  code-golf  string  code-golf  code-golf  game  code-golf  math  combinatorics  code-golf  ascii-art  popularity-contest  random  code-golf  arithmetic  number-theory  integer  code-golf  tips  underload  code-golf  math  sequence  primes  code-golf  math  path-finding  code-golf  ascii-art  primes  code-golf  kolmogorov-complexity  alphabet 

22
建立字母金字塔
今天,我们要用字母建造一座金字塔!这是前5个字母的示例字母金字塔: 在前5个字母之间写下一个空格,先升后降。 A B C D E D C B A 对上面一行的前四个字母执行相同的操作,但是要有两个额外的前导空格: A B C D C B A A B C D E D C B A 重复相同的步骤,直到最后一行只是'A' A A B A A B C B A A B C D C B A A B C D E …

11
最大化平方差
考虑从1到的整数值的置换N。例如此示例N = 4: [1, 3, 4, 2] 我们将认为此列表是循环的,因此1和2被视为相邻列表。我们可以为这样的列表计算的一个量是相邻值的总平方差: (1-3)² + (3-4)² + (4-2)² + (2-1)² = 10 给定正整数,您的任务是找到一个最大化此数量的排列N。在N = 4上面的例子中不是最佳的(实际上,这是最小的)。18通过以下排列(以及其他几个排列),我们可以实现的总平方差: [1, 4, 2, 3] 您的算法必须在(的N)多项式时间内运行。特别是,您不能简单地计算所有排列的总平方差。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行自变量或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 输出可以采用任何方便,明确,平坦的列表或字符串格式。您可以选择从与返回值的列表0,以N-1代替1向N。 适用标准代码高尔夫球规则。 测试数据 这个问题有一个很好的分析解决方案。例如,所有有效的解决方案N = 10均等效于以下列表(直至循环移位和反转): [7, 5, 6, 4, 8, 2, 10, 1, 9, 3] 我不想透露过多的信息(尽管足以找出模式),因此无需给出更多示例,您可以检查您的结果是否具有给定的总平方差N: N Total squared difference 1 0 2 …
19 code-golf  array-manipulation  permutations  restricted-complexity  code-golf  geometry  grid  code-golf  string  sorting  code-golf  simulation  code-golf  string  code-golf  arithmetic  code-golf  sorting  code-golf  string  code-golf  sorting  code-golf  interpreter  code-golf  number  kolmogorov-complexity  natural-language  conversion  code-golf  random  internet  code-golf  board-game  code-golf  number  sequence  code-golf  math  number  code-challenge  image-processing  classification  test-battery  code-golf  ascii-art  code-golf  tips  code-golf  arithmetic  code-golf  tips  code-golf  tips  javascript  code-golf  array-manipulation  code-golf  ascii-art  code-golf  string  binary  code-golf  arithmetic  linear-algebra  matrix  code-golf  sequence  code-golf  math  number  arithmetic  code-golf  primes  code-golf  math  code-golf  array-manipulation  counting  code-golf  arithmetic  code-golf  quine  code-generation  polyglot  code-golf  math  kolmogorov-complexity  trigonometry  code-golf  string  encryption 

15
每日随机高尔夫#4:贝特朗悖论
关于系列 首先,您可以像对待其他任何代码高尔夫挑战赛一样对待它,并回答它而不必担心系列赛。但是,在所有挑战中都有排行榜。您可以在第一篇文章中找到排行榜以及有关该系列的更多信息。 尽管我在本系列中有很多想法,但未来的挑战还没有定下来。如果您有任何建议,请在相关的沙箱帖子上让我知道。 第4洞:贝特朗悖论 该贝特朗悖论是一个有趣的问题,它显示了在一个圆圈采摘随机和弦可以产生和弦,它们的中点和它们的长度的不同分布如何不同的方法。 在这一挑战中,您应该使用“右”方法生成单位圆的随机和弦,即产生在分布和平移下不变的和弦分布的方法。在链接的Wikipedia文章中,“方法2”就是这样的方法。 确切的规则如下: 您应该使用一个正整数N,该整数指定应返回多少个和弦。输出应该是一个N和弦列表,每个和弦都指定为单位圆上的两个点,以其弧度的极角表示。 您的代码应该能够为两个角度中的每个角度至少返回2 20个不同的值。如果可用的RNG范围较小,则必须首先在内置的RNG之上构建具有足够大范围的RNG,或者必须实现自己合适的RNG。此页面可能对此有所帮助。 和弦的分布必须与链接的Wikipedia文章中“方法2”产生的和弦没有区别。如果您采用其他算法来选择和弦,请提供正确性证明。无论您选择实施哪种算法,从理论上讲,它都必须能够在单位圆中生成任何有效的和弦(不包括基础PRNG或有限精度数据类型的限制)。 您的实现应使用并返回浮点数(至少32位宽)或定点数(至少24位宽),并且所有算术运算都应在16 ulp以内准确。 您可以编写完整的程序或函数,并通过STDIN(或最接近的替代方案),命令行自变量或函数自变量接受输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数产生输出。 输出可以采用任何方便的列表或字符串格式,只要可以清楚地区分各个数字并且它们的总数始终为偶数即可。 这是代码高尔夫球,因此最短的提交(以字节为单位)获胜。当然,每位用户最短的提交时间也将进入该系列的整体排行榜。 可视化 您可以使用以下代码段渲染生成的线并检查其分布。只需将成对的角度列表粘贴到文本区域即可。该代码段应该能够处理几乎所有列表格式,只要这些数字是简单的十进制数字(无科学计数法)即可。我建议您至少使用1000行来了解分布情况。我还提供了以下文章中介绍的不同方法的一些示例数据。 显示代码段 function draw() { document.getElementById("output").innerHTML = svg } function drawLines() { lines = document.getElementById("lines").value; var e = prefix; //e += '<circle cx="' + offset + '" + cy="' + offset + '" …

13
谢尔宾斯基层
首先,/\您可以通过在下面添加一条线来创建类似于Sierpinski三角形的图案,从而... 任何松散的分支/或\再次分裂为两个分支:/\。 分支的任何碰撞都将\/死,其下无任何东西(只有空格)。 重复这些规则将产生 /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ etc... (ViHart的启发) 编写一个程序或函数,该程序或函数接受一个正整数N,并将此模式的前N行打印到stdout,且前导或尾随空格不超过所需数量。 例如,如果输入是1输出,则必须为 /\ 如果输入是2输出,则必须为 /\ /\/\ 如果输入是8输出,则必须为 /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ /\ /\ /\ /\ /\/\/\/\/\/\/\/\ 等等。 字节最少的代码获胜。

11
每日随机高尔夫#3:整数分区
关于系列 首先,您可以像对待其他任何代码高尔夫挑战赛一样对待它,并回答它而不必担心系列赛。但是,在所有挑战中都有排行榜。您可以在第一篇文章中找到排行榜以及有关该系列的更多信息。 尽管我在本系列中有很多想法,但未来的挑战还没有定下来。如果您有任何建议,请在相关的沙箱帖子上让我知道。 漏洞3:整数分区 时间增加了一点难度。 甲分区正整数n被定义为正整数,其总和的多集n。例如,如果n = 5存在,则存在以下分区: {1,1,1,1,1} {2,1,1,1} {2,2,1} {3,1,1} {3,2} {4,1} {5} 请注意,这些是多集,因此它们没有顺序{3,1,1},{1,3,1}并且{1,1,3}都被认为是相同的。 给您的任务是n生成的随机分区n。以下是详细规则: 产生的隔板的分布必须均匀。也就是说,在上面的示例中,应该以1/7的概率返回每个分区。 当然,由于PRNG的技术局限性,不可能实现完美的均匀性。为了评估您提交的文件的均匀性,以下操作将被视为产生完全均匀的分布: 从PRNG(在任何范围内)获取一个数字,该数字被证明是(近似)统一的。 通过取模或乘法(或一些其他将值均匀分配的运算)将较大的一组数字的均匀分布映射到较小的一组。较大的集合必须包含至少为较小集合的1024倍的可能值。 由于分区是多集,因此您可以按任何顺序返回它们,并且此顺序不必一致。但是,出于随机分布的目的,顺序被忽略。也就是说,在上面的示例中{3,1,1},{1,3,1}和{1,1,3} 一起返回的概率必须为1/7。 您的算法必须具有确定性的运行时。特别是,您不能生成随机多集,如果它们的总和不等于,则拒绝它们n。 您算法的时间复杂度必须是中的多项式n。特别是,您不能简单地生成所有分区并选择一个随机分区(因为分区的数量与呈指数增长n)。您可能会假设您使用的PRNG可以返回每个值O(1)中的均匀分布值。 您不得使用任何内置函数来解决此任务。 您可以编写完整的程序或函数,并通过STDIN或最接近的替代方案,命令行参数或函数自变量接受输入,并通过返回值或打印到STDOUT(或最接近的替代方案)产生输出。 您可以假定n ≤ 65(这样分区的数目小于2 21)。输出可以采用任何方便,明确的列表或字符串格式。 如果您提交功能,请考虑还提供一些测试程序,该程序会多次调用该功能并打印结果。如果必须在代码中调整参数,则可以。这样做是为了使人们可以检查解决方案至少近似均匀。 这是代码高尔夫球,因此最短的提交(以字节为单位)获胜。当然,每位用户最短的提交时间也将进入该系列的整体排行榜。 排行榜 该系列的第一篇文章将产生一个排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头每个答案: # Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: # Ruby, <s>104</s> <s>101</s> 96 bytes (目前未显示该语言,但是该代码段确实需要并对其进行解析,并且将来我可能会添加一个语言排行榜。)

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 …

22
ssTTsSTtRrriinInnnnNNNIiinngg
挑战 对于字符串的每个字符(最后一个字符除外),请执行以下操作: 输出当前字符。 接下来,从以下列表中随机输出1-5(含)之间的随机次数: 当前角色 字符串的下一个字符 您当前使用的字符的开关盒版本 字符串的下一个字符的开关盒版本。 测试用例 String -> SSSTSStrTrIiinIIngn , . , . , . Hello world! -> ,,, .. , ,, .... , , .. .. . HHH HHEeelLlLllooO wwOworOOrrrRllDd!!D Programming Puzzles and Code Golf -> PrPPrRrOooooogggRgGraAraaaMMMmmmimMIiininGGgG PPPPuZzZZzZzzZzllLLEEeEsEsssS a aANnNddD C COCoooOOdeDe E GGGoOllFFf 笔记 如果字符是字母(AZ和az)的一部分,则仅需要应用字符的切换大小写版本。 …

20
简约熔岩灯
介绍: 我想每个人都知道熔岩灯是什么,但万一他们不知道: (图片来源) 它们基本上是在半透明液体中包含蜡的玻璃管。打开灯时,底部会被加热,从而导致密度变化,因此蜡会浮到顶部。冷却后,它会再次掉落,从而产生我们上面看到的效果。 灯的底座通常需要大约45-60分钟的时间才能升高到足以将固体蜡变为液体蜡的温度(如果灯位于室温下的区域)。 有关Wikipedia的更多信息,该信息也用作上述某些文本的来源。 挑战: 给定一个正整数n,该值指示自从我们打开熔岩灯以来经过的分钟数,请基于五个级别的整数输出熔岩灯的随机状态。 对于此挑战,我们将说熔岩灯总共包含1000单位蜡,并且我们可以将蜡置于5个级别。 1)如果n低于45,熔岩灯仍在加热,因此输出将是四个空行,1000底部是: 1000 2)如果熔岩灯的温度n在此范围内,则[45, 60)其温度升高到足以使蜡移动的程度,但还没有很高。蜡可以达到并包括第三级。 3)如果n为60或更高,则蜡的含量可以为五个级别中的任何一个。 因此,给定正整数n作为输入,我们将牢记上述三个规则来输出随机状态。 以下是一些示例输出: 可能的输出n是>= 45: 523 106 371 913 87 可能的输出n是>= 60: 73 113 312 5 497 284 55 637 24 常量输出n是<= 44(以及任何可能的输出n): 1000 挑战规则: 即使上面的级别不为空,也可以有空行。 只是0不允许在任何行上。应该为空。 输出有些灵活。您可以输出字符串/对象的列表/数组,而不是上述的以换行符分隔的结果。我说字符串/对象的原因是由于上述规则。一个空行应"",null,[]等,但不能是0或负整数(也不能被false)(即["", "", 913, "", 87]用于n >= 45)。您还可以反转输出(即,1000\n\n\n\n代替\n\n\n\n1000或[87, null, 913, null, …

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.