Questions tagged «random»

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

21
球体上的随机点
挑战 编写一个程序或函数,该程序或函数不输入任何内容,并在理论上均匀的随机方向上输出长度为的向量。111 这等效于所描述的球面上的随机点x2+y2+z2=1x2+y2+z2=1x^2+y^2+z^2=1 导致这样的分布 输出量 从理论上均匀的随机分布中得出三个浮点数,方程满足精度极限。x2+y2+z2=1x2+y2+z2=1x^2+y^2+z^2=1 挑战备注 理论上,随机分布必须是均匀的。也就是说,如果将伪随机数生成器替换为实数中的真实RNG ,则会导致球体上点的均匀随机分布。 从均匀分布中生成三个随机数并将它们归一化是无效的:将会对三维空间的各个角产生偏差。 同样,从均匀分布中生成两个随机数并将其用作球面坐标也是无效的:向球体的极点会产生偏差。 适当的均匀性可以通过算法实现,这些算法包括但不限于: 根据附近的正态(高斯)分布生成三个随机数,和并将其标准化。 xxxyyyzzz000 实施实例 根据范围内的均匀分布生成三个随机数,和xxxyyyzzz(−1,1)(−1,1)(-1,1)。通过l = √计算向量的长度l=x2+y2+z2−−−−−−−−−−√l=x2+y2+z2l=\sqrt{x^2+y^2+z^2}。然后,如果l>1l>1l>1,则拒绝该向量并生成一组新的数字。否则,如果l≤1l≤1l \leq 1,标准化载体并返回结果。 实施实例 生成两个随机数iii和jjj从均匀的范围内分布(0,1)(0,1)(0,1)并将其转换为球面坐标,像这样:θϕ=2×π×i=cos−1(2×j−1)θ=2×π×iϕ=cos−1⁡(2×j−1)\begin{align}\theta &= 2 \times \pi \times i\\\\\phi &= \cos^{-1}(2\times j -1)\end{align}因此可以通过 x计算xxx,yyy和zzzxyz=cos(θ)×sin(ϕ)=sin(θ)×sin(ϕ)=cos(ϕ)x=cos⁡(θ)×sin⁡(ϕ)y=sin⁡(θ)×sin⁡(ϕ)z=cos⁡(ϕ)\begin{align}x &= \cos(\theta) \times \sin(\phi)\\\\y &= \sin(\theta) \times \sin(\phi)\\\\z &= \cos(\phi)\end{align} 实施实例 在您的答案中提供您正在使用的算法的简短描述。 在MathWorld上阅读有关球体点拾取的更多信息。 输出示例 [ 0.72422852 -0.58643067 …

30
模拟爆炸骰子
您的任务是制作一个接受整数的程序n > 1,并输出单面n模具的卷。但是,此骰子遵循爆炸骰子的规则。 掷骰子时,请检查掷出的值。如果您获得了该类型骰子的最大值(在标准d4上为4,或者在d6上为6,依此类推),请再次滚动并将新的滚动添加到该总数中。每次滚动都会继续增加总数,直到您不再滚动最大数量为止。虽然最后一个数字仍然被添加。 您的程序应采用单个整数n,并滚动爆炸边的n模具。这是一个示例分布,以显示其外观n=4。请注意,您永远不要输出的任何倍数n,因为它们总是会爆炸。 您可以假定您执行的任何递归的堆栈大小都是无限的,并且您的随机函数必须符合我们的随机性标准(内置随机生成器或time / date)。与诸如几何分布之类的东西相比,您的随机函数也应尽可能统一,因为我们正在谈论这些骰子。
31 code-golf  random 

11
生成一个“ GitHub”头像
背景/说明 注意:正如@HelkaHomba指出的那样,实际的GitHub identicons 实际上并不是随机的,而是基于用户名的哈希值 默认的GitHub头像是5x5像素的图像。随机选择一种颜色,然后使用该颜色在一侧(右侧或左侧,2x5大小)填充随机像素。然后,将这一侧复制并翻转到y轴的另一侧。剩余的未填充的像素为#F0F0F0或rgb(240,240,240)。 然后使用与以前相同的颜色随机填充中心列的像素(大小为1x5)。 输出量 注意:对于这个挑战,我们将忽略包围GitHub头像的空间 该程序应输出5x5像素的图像文件。见http://meta.codegolf.stackexchange.com/a/9095/42499的细节 例子 注意:这些显然是从5x5放大的,因此您可以看到它们 祝好运!

20
法鲁洗牌数组
阿法鲁洗牌是经常使用的魔术到“洗牌”甲板的技术。要执行Faro随机播放,您首先将卡座切成相等的两半,然后将这两个半插入。例如 [1 2 3 4 5 6 7 8] 法鲁洗牌是 [1 5 2 6 3 7 4 8] 可以重复多次。有趣的是,如果重复此次数足够多,您将总是回到原始数组。例如: [1 2 3 4 5 6 7 8] [1 5 2 6 3 7 4 8] [1 3 5 7 2 4 6 8] [1 2 3 4 5 6 7 …
31 code-golf  permutations  card-games  code-golf  graphical-output  random  code-golf  image-processing  color  code-golf  primes  code-golf  math  arithmetic  combinatorics  decision-problem  code-golf  sequence  number-theory  binary  code-golf  number-theory  set-theory  code-golf  hashing  code-golf  game  card-games  code-golf  ascii-art  code-golf  arithmetic  array-manipulation  jelly  code-golf  string  array-manipulation  code-golf  sorting  code-challenge  code-golf  number  date  binary  code-golf  arithmetic  code-golf  math  number  linear-algebra  polynomials  code-golf  ascii-art  code-golf  grid  decision-problem  code-golf  string  combinatorics  code-golf  string  kolmogorov-complexity  arithmetic  date  code-golf  number  data-structures  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation 

27
密码化字符串
您的挑战是密码字符串!您问什么是密码? 以字符串作为输入。该字符串将仅包含大写字母,小写字母,数字和空格。 您必须用下划线替换所有空格,并按从左到右的顺序将所有数字移动到字符串的末尾。然后,对于字符串中的每个字母,将其随机更改为大写或小写。 示例(字符大小写每次都不同): Input Hello world Output HElLo_wORld Input pa55 w0rd Output pA_Wrd550 Input 14 35 Output _1435 Input 0971 Output 0971 Input [space] Output _ 以字节为单位的最短代码胜出! 谁在Information Security SE上问这是否是一个好的哈希算法,那会取胜!-不用担心SE霸主,我只是在开玩笑。

3
实施PCG
与实现更好的随机数生成器PCG相比,PCG.SE有什么更好的问题?这份新论文声称将提供一种快速,难以预测的小型统计上最优的随机数生成器。 它的最小C实现仅约九行: // *Really* minimal PCG32 code / (c) 2014 M.E. O'Neill / pcg-random.org // Licensed under Apache License 2.0 (NO WARRANTY, etc. see website) typedef struct { uint64_t state; uint64_t inc; } pcg32_random_t; uint32_t pcg32_random_r(pcg32_random_t* rng) { uint64_t oldstate = rng->state; // Advance internal state rng->state = oldstate * …
31 code-golf  random 

3
醉酒的打字员
背景 一位打字员回到家后,发现一些重要的信件仍需加重。为了确保他审核文本正确,他将文本字符bh vjaracter t0确定为6he。但是,他仍然设法错过了一些钥匙。 您的任务是编写模仿其ttping的cose。为了最大程度地减少错误的发生,代码应尽可能短。 键盘 键盘是标准的ANSI键盘。在下图中,红色文本显示了键的宽度。所有行均为1单位高,未标记的键为1单位宽。 这些键执行以下操作(列出只是为了防止混淆): Shift本身不会执行任何操作,但是如果在常规键之前立即按Shift键,则会更改结果。 CapsLock切换Caps Lock。如果启用了Caps Lock,则字母键将输出反大小写的字母。 Backspace删除最后输出的字符(如果有)。 Tab,Return和Space分别插入一个制表符,换行符和空格。 Ctrl,Alt只是用于演示。他们(并完全缺少键盘)什么也不做。 所有字母键都会产生标记的小写字母。如果在它们之前按Shift键,则会产生大写字母。Caps Lock可逆转情况。 所有其他键产生中间标记的字符。如果在他们之前按Shift键,则会产生在顶部标记的字符。 打字 为了生成一个字符,打字员在键盘上找到它并检查是否需要按Shift键。如果是这样,他首先尝试按住Shift键。然后,他立即尝试按目标键并释放所有Shift键。在尝试按目标键之后,他必须严格释放Shift键。 然而,由于醉酒,他经常错过钥匙。这可以通过以下方法模拟:选择一个随机角度(均匀地),在该方向上将按压位置移动一个随机量(具有适当的分布),然后按下落下的按键。 挑战 作为输入,您将收到要写入的文本和指示醉酒程度的数字参数。您将输出醉酒打字员键入的文本,以及上述算法生成的错别字。 技术指标 输入文本将仅包含可打印的ASCII,制表符和换行符。 输入参数是某种标量数值。可以在答案中指定其范围,但增大该值应增加平均未命中距离,反之亦然。 您可以将键盘缩放到任何内部尺寸;上面的单位大小仅是示例。 使用的坐标必须精确到关键高度的千分之一。 该程序应为每次调用产生不同的结果。(诸如srand(time(NULL));每秒更改之类的东西就足够了。) 遗漏距离的分布可以是正态分布,也可以是其他类似的分布(较小值的大概率,对于较大值则迅速减小;例如,负指数就可以了)。 打字员的手指只有一点。无需考虑其半径。 打字员可以瞄准钥匙内的任何地方,只要它不在边缘上即可。中心,恒定位置等有效。 选择Shift键的方式可以是任何方式。允许进行恒定选择,但是如果错过Shift键的地方到此结束,则两个Shift键都需要起作用。 如果按住Shift键,则仅会影响该键(即在另一个键之前尝试Shift键并成功按下)。按下Shift键的“普通”键不起作用。 Shift键仅在真实键之前被按下并快速释放,因此如果按住错误的键,则不会重复字符。 示例I / O 以下所有示例均来自参考解决方案,该解决方案使用距离的正态分布并始终选择左Shift。选项卡以SE表示为空格,但应显示在实际输出中。 输入: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed posuere …

30
生成长度为N的随机字母数字字符串
生成具有给定长度且仅允许字母数字字符的随机字符串的最短方法是什么? 随机字符串的示例:如果N = 9,则输出为 aZua7I0Lk 给定的长度N可以假定始终大于0 如有必要,可以将N的最大值假定为256,但是最好使用N的上限更高但仍具有快速计算时间的解决方案 允许的字符:0-9,az和AZ 一个字符可以在输出字符串中出现多次 每个可能的字符串应具有同等的可能性(以您的语言的随机数生成器的准确性为准)

26
数字总和斐波那契
我们都熟悉斐波那契数列: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765 但是,相反,f(n) = f(n-1) + f(n-2)我们将对前2个条目进行数字求和。 序列应仍以开头0, 1,之后差异会迅速显现。此列表的索引为0,也可以使用索引为1的状态。 f(0) = 0 f(1) = 1 f(2) = 1 # 0 + 1 f(3) = 2 # 1 + 1 f(4) …

21
产生随机排列
挑战说明 序列的“排列”是一种排列,其中没有元素出现在其原始位置。例如,ECABD是的排列ABCDE,但CBEDA不是: ABCDE | | <- B and D are in their orignal positions CBEDA 给定一个序列,生成它的随机排列。 笔记 您可以将字符串作为输入或元素(整数,字符,对象...)的数组/列表 无需返回新对象,而是可以通过交换其元素来修改现有对象 每次错序产生的可能性均等 您可以假设序列中有多个元素,并且没有一个以上元素出现

8
脆弱的奎因
脆弱的奎因 脆弱的quine是满足通过删除单个字符来组成每个子字符串的属性的quine,在评估时会产生错误。 例如。如果您的程序asdf是木盒,那么它就很脆弱,以下程序必须出错: sdf adf asf asd 您的程序(及其所有子字符串)必须是完全确定性的,并且必须使用相同的语言。就此挑战而言,即使最终未产生错误,陷入无限循环(即无法终止)的程序也被视为“产生错误”。 存在标准漏洞,包括通常的quine限制(例如,无法读取自己的源代码)。 例如,print("foo")不是脆弱的。所有这些子字符串必须出错: rint("foo") pint("foo") prnt("foo") prit("foo") prin("foo") print"foo") print(foo") print("oo") print("fo") print("fo") print("foo) print("foo" 不会出错的是: print("oo") print("fo") print("fo") 因此它并不脆弱。 关于藜的重要说明 通过协商一致,任何可能的奎纳必须满足以下条件: 必须有可能识别程序的一部分,该部分对程序的不同部分进行编码。(“不同”表示两个部分出现在不同的位置。) 此外,木盒不得直接或间接访问其自身的源。 例 由于我认为JavaScript的function#toString是“正在读取其自身的源代码”,因此我不允许这样做。但是,如果我不想禁止它,那么这是JavaScript中的一个脆弱的方法: f=(n=b=`f=${f}`)=>(a=(n)==`f=${f}`,n=0,a)&(n!=b)?b:q 测试仪 这是一个程序,在给定程序源代码的情况下,它会生成所有必须出错的程序。 let f = (s) => [...Array(s.length).keys()].map(i => s.slice(0, i) + s.slice(i + 1)).join("\n"); let …
30 code-golf  quine  code-golf  date  code-golf  sequence  code-golf  sorting  file-system  code-golf  code-golf  ascii-art  hexagonal-grid  code-golf  string  arithmetic  code-golf  code-golf  code-challenge  source-layout  code-golf  ascii-art  cellular-automata  code-golf  string  arithmetic  balanced-string  code-golf  number  primes  code-golf  ascii-art  hexagonal-grid  code-golf  string  code-golf  string  code-golf  sequence  code-golf  ascii-art  code-golf  conversion  hexadecimal  code-challenge  restricted-source  code-golf  math  grid  code-golf  string  ascii-art  code-golf  random  minesweeper  code-golf  ascii-art  kolmogorov-complexity  board-game  scrabble  code-golf  ascii-art  code-golf  math  number-theory  decision-problem  code-golf  string  code-golf  natural-language  code-golf  internet  stack-exchange-api  code-golf  code-golf  conversion  code-golf  string  code-golf  math  arithmetic  code-golf  string  whitespace  code-golf  graphical-output  internet  code-golf  string  code-golf  string  random  permutations  code-golf  string  code-golf  string 

30
ASCII三角形
您的任务是编写一个打印ASCII三角形的程序或函数。他们看起来像这样: |\ | \ | \ ---- 您的程序将采用单个数字输入n,并带有约束0 <= n <= 1000。上面的三角形的值为n=3。 ASCII三角形将具有n反斜杠(\)和竖线(|),n+1线和破折号(-),并且每行除最终行外还将具有等于行号(从0开始,即第一行为行0)的空格。 。 例子: 输入: 4 输出: |\ | \ | \ | \ ----- 输入: 0 输出: 在此测试用例中,输出必须为空。没有空格。 输入: 1 输出: |\ -- 输入和输出必须完全是我指定的方式。 这是代码高尔夫球,因此请争取尽可能短的代码!
30 code-golf  ascii-art  code-golf  rubiks-cube  code-golf  path-finding  maze  regular-expression  code-golf  math  rational-numbers  code-golf  kolmogorov-complexity  graphical-output  code-golf  tips  code-golf  string  permutations  code-golf  sorting  base-conversion  binary  code-golf  tips  basic  code-golf  number  number-theory  fibonacci  code-golf  date  code-golf  restricted-source  quine  file-system  code-golf  code-golf  math  code-golf  ascii-art  code-golf  math  primes  code-golf  code-golf  math  matrix  code-golf  string  math  logic  factorial  code-golf  palindrome  code-golf  quine  stateful  code-golf  interactive  code-golf  board-game  code-golf  math  arithmetic  code-golf  string  code-golf  math  matrix  code-golf  math  abstract-algebra  polynomials  code-golf  date  code-golf  string  array-manipulation  sorting  code-golf  game  code-golf  string  code-golf  ascii-art  decision-problem  code-golf  number  sequence  code-golf  code-golf  code-golf  sequence  fibonacci  code-golf  math  geometry  random  code-golf  code-golf  math  decision-problem  fractal  rational-numbers  code-golf  number  number-theory  code-golf  combinatorics  permutations  card-games  code-golf  math  sequence  array-manipulation  fibonacci  code-golf  sequence  decision-problem  graph-theory  code-golf  ascii-art  parsing  lisp  code-golf  string  math  natural-language  logic  code-golf  math  logic  code-golf  string  alphabet  code-golf  string  code-golf  string 

30
猫又吃了你的输入!
创建一个cat程序,也就是一个接受输入并打印的程序。 ...此外,该程序将随机从输入中删除字符并打印出来。 输入中的每个字符的机率通常应相等,但是很难做到,每个字符的机率最多只能相差10%。 您的程序应采用输入,然后从输入中随机删除字符,然后再次打印该版本。(如果您的语言必须打印换行符,则可以使用尾随换行符或其他字符进行打印。) 如果输入为BOOOWL,则不应以相等的机会删除所有O:应该考虑每个字符(不是唯一的),因此,每个O都应具有1的机会,而不是每个合并的O具有1/5的机会。 / 5的机率,因此,BWL与其应该有1/5的机率,不如应该有1/5的机率BOWL,BOOWL。 输入仅限于STDIN或最接近的等效项。 每个字符必须必须除去最低10%和最大30%的机会的。 每个角色的赔率应单独计算。 您可以使用语言中支持随机动作的任何组件,无论是函数还是其他组件。 输出必须通过STDOUT或最接近的等效输出。如果您的语言确实有STDOUT,请勿以任何其他方式输出。如果您的语言无法将字符串输出为文本,请使用最接近的等效字符串(此处的C的字符数组输出可以)。 这是代码高尔夫。最短的程序获胜。

20
实施霍姆斯塔克的连环世界末日骰子Cascader
挑战 我受到了盗窃的午夜船员的攻击,我需要召唤Catenative Doomsday Dice Cascader来保卫自己。由于我的空间不足,因此我需要代码尽可能短。 连环世界末日骰子级联的算法如下: 首先,将“ Prime Bubble”中的六面模具滚动,结果将确定下一步进行了多少次迭代。 从六面模具开始。对于“ Prime Bubble”骰子的滚动次数,将下一个骰子的边数乘以当前骰子滚动的结果。例如,如果在您的六面骰子的第一卷上您的骰子是2,那么您的下一个骰子将具有6 * 2 = 12面。 您的目标是编写一个不带任何输入并输出最后一次压模的最终结果的函数或程序。由于这是代码高尔夫球,因此每种语言中的最低字节数为准! 例子 示例1(直接从上面的链接获取): The Prime Bubble rolls a 6, meaning that the Cascader will iterate six times #1: We always start with a 6 sided die, and it rolls a 2, so the next …
29 code-golf  random 

27
Code Golf:您自己的水平宠物ASCII蛇
受此挑战的启发非常深远。Code Golf:您自己的宠物ASCII蛇 -我认为将其水平放置会增加额外的复杂性。 水平蛇示例: 0 0 0 0 0 000 00 0 00 000 0 0 000 0 0 0 00 0 000 规则是: 正好打印了5行字符 每行正好是30个字符,由空格和您选择用来绘制蛇的字符的组合组成 你的蛇从第3行开始 必须从当前行中随机选择下一条用于绘制蛇的行,即从上方一行(如果您尚未位于第1行)或从下方一行(如果您尚未位于第5行)。 这些选择必须同等权重。因此,如果您在1号线,则有50%的机会留在1号线,而50%的机会移至2号线。如果在2号线,则有33%的机会移至1号线,留在2号线的机会为33%或移至3号线的机会为33% 你的蛇并不需要访问每一行。

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.