Questions tagged «probability-theory»

挑战涉及随机变量和随机过程的计算概率。

3
电脑:数学
这一挑战部分是算法挑战,涉及一些数学运算,部分只是最快的代码挑战。 对于某个正整数n,请考虑一个长度为1s和0s的均匀随机串,n并将其称为A。现在还要考虑第二个统一选择的长度n为或的随机字符串-1,并将其称为。现在,让我们成为+ 。那是串联的。0,1B_preBB_preB_preB_pre 现在考虑Aand 的内积,并从中B[j,...,j+n-1]调用它Z_j和index 1。 任务 输出应为n+1分数列表。的i在输出第术语应该是准确的概率的所有第一i方面Z_j具有j <= i相等0。 得分了 n在我的机器上,您的代码可在10分钟内为您的代码提供最大的正确输出。 决胜局 如果两个答案得分相同,则第一个提交者获胜。 在(非常非常不可能)的事件中,如果有人找到获得无限分的方法,则将接受这种解决方案的第一个有效证明。 暗示 不要尝试用数学方法解决这个问题,这太难了。我认为最好的方法是回到高中的概率的基本定义,并找到巧妙的方法来获取代码以对各种可能性进行详尽的列举。 语言和图书馆 您可以使用任何具有免费编译器/解释器/等的语言。适用于Linux以及任何可免费用于Linux的库。 我的机器 时间将在我的机器上运行。这是在AMD FX-8350八核处理器上的标准ubuntu安装。这也意味着我需要能够运行您的代码。因此,请仅使用易于使用的免费软件,并请提供有关如何编译和运行代码的完整说明。 一些测试输出。考虑每个的第一个输出n。那是什么时候i=1。对于n1到13,它们应该是。 1: 4/6 2: 18/36 3: 88/216 4: 454/1296 5: 2424/7776 6: 13236/46656 7: 73392/279936 8: 411462/1679616 9: 2325976/10077696 10: 13233628/60466176 11: 75682512/362797056 12: 434662684/2176782336 13: 2505229744/13060694016 您也可以i=1在http://oeis.org/A081671上找到其通用公式。 …

3
广义生日问题
今晚,未婚夫带我出去吃饭庆祝我的生日。当我们外出时,我听说在一家50人的餐厅里,向5位不同的客人(包括我自己)唱着生日快乐。这让我感到奇怪-最初的生日问题(确定一个房间中2 N个人共享同一生日的概率)非常简单明了。但是,如何计算至少k有人中N有人共享同一生日的概率呢? 如果您想知道,那么在50个共有相同生日的人中,至少有5个人的概率约为1/10000。 挑战 给定两个整数N和k,其中N >= k > 0,输出k一组中至少N有人共享同一生日的概率。为简单起见,假设总是有365个可能的生日,并且所有日子都有相同的可能性。 对于k = 2,这归结为最初的生日问题,概率为1 - P(365, N)/(365)**N(其中P(n,k)是n个元素形成的k长度排列的数量)。对于的较大值k,Wolfram MathWorld的这篇文章可能会很有用。 规则 输出必须是确定性的,并且对于您选择的语言必须尽可能准确。这意味着没有蒙特卡洛估计或泊松近似。 N且k不得大于您选择的语言中可表示的最大整数。如果您选择的语言对整数没有硬性限制(除了内存限制),那么N它k可能会很大。 由浮点误差引起的精度误差可以忽略不计-您的解决方案应假定为完全精确,无限精度的浮点数。 测试用例 格式: k, N -> exact fraction (float approximation) 2, 4 -> 795341/48627125 (0.016355912466550306) 2, 10 -> 2689423743942044098153/22996713557917153515625 (0.11694817771107766) 2, 23 -> 38093904702297390785243708291056390518886454060947061/75091883268515350125426207425223147563269805908203125 (0.5072972343239854) 3, 3 -> 1/133225 (7.5060987051979735e-06) 3, …

3
我有机会赢得大奖吗?
我在当地的ACM分会向参加会议的人员颁发奖品。但是,如果您解决了编程难题,您获胜的机会就会增加(但是我总是会解决难题)。因此,有些人只有1个条目,而其他人只有2个条目。抽奖程序的工作方式不是在有人解决难题时添加其他条目。取而代之的是,它跟踪一个人拥有的“生命”数量,从而减少了在该随机抽样算法的每遍操作中是否选择了该人。所以它是这样的: Doorknob: 1. xnor: 2. Justin: 2. Alex: 1. Dennis: 2. 然后程序随机选择之一[Doorknob, xnor, Justin, Alex, Dennis],递减数字(例如选择Justin): Doorknob: 1. xnor: 2. Justin: 1. Alex: 1. Dennis: 2. 并重复。如果某人的“生命”数量达到0(让我们Justin再次选择),那么他们将从列表中删除: Doorknob: 1. xnor: 2. Alex: 1. Dennis: 2. 这一直持续到剩下一个人为止。那个人就是赢家。 现在真正的问题是,我赢了的概率是多少? 您将获得两个输入: n。这是参加挑战的人数 k。这是n指拥有2条生命的人数。此号码始终包含您。 因此,如果我有一个函数p叫p(10, 5),这就是赢得奖金的概率,总共有10个人,其中5个人只有1人生,而5(包括您)有2人生。 您应该输出准确或十进制形式获胜的概率。无论如何,答案必须精确到小数点后第四位,包括小数点后第四位。是否舍入到该数字取决于您。 您的解决方案可以是随机化的溶液,其输出的答案为4 个与小数位高概率。您可能会假设您使用的内置RNG确实是随机的,并且它必须以至少90%的概率输出正确的答案。 此外,您的代码只需要用于n, k <= 1000,尽管我确实提供了比那些好奇的用户更大的测试用例。 测试用例 …

4
一天中的时间表不确定性
假设您的闹钟在一个早晨将您叫醒,但您打了贪睡使您可以再睡8分钟。当它再次响起时,您会苦苦地起身去洗个澡,估计需要15到17分钟。然后,您只需刷牙2分钟,然后穿好衣服,大约需要3至5分钟。最后,您在6至8分钟内吃了一份匆忙的早餐,然后跑出了门。 我们可以将该时序表示为8 15-17 2 3-5 6-8。 鉴于您早上的例行活动不确定,自您第一次醒来以来在特定的分钟数内完成每项任务的概率是多少? 假设每个任务需要花费几分钟,我们可以绘制不确定时间跨度的每种可能组合(例如,刷牙需要3、4和5分钟)。该图表显示了所有27种可能性,时间在右边增加,每项N分钟的任务用(N-1)短划线和一个竖线表示,以标记其结束时间。字符之间存在微小的边界,因此8和9列之间的间隔8 min 59 sec变为9 min。 1111111111222222222233333333334 1234567890123456789012345678901234567890 <-- Minute -------|--------------|-|--|-----| -------|--------------|-|--|------| -------|--------------|-|--|-------| -------|--------------|-|---|-----| -------|--------------|-|---|------| -------|--------------|-|---|-------| -------|--------------|-|----|-----| -------|--------------|-|----|------| -------|--------------|-|----|-------| -------|---------------|-|--|-----| -------|---------------|-|--|------| -------|---------------|-|--|-------| -------|---------------|-|---|-----| -------|---------------|-|---|------| -------|---------------|-|---|-------| -------|---------------|-|----|-----| -------|---------------|-|----|------| -------|---------------|-|----|-------| -------|----------------|-|--|-----| -------|----------------|-|--|------| -------|----------------|-|--|-------| -------|----------------|-|---|-----| -------|----------------|-|---|------| -------|----------------|-|---|-------| -------|----------------|-|----|-----| -------|----------------|-|----|------| -------|----------------|-|----|-------| 1234567891111111111222222222233333333334 <-- Minute 0123456789012345678901234567890 显然,该例程最多可能花费40分钟,至少花费34分钟。 问题是,在特定的某个分钟(例如第29分钟),您执行这5个任务中的每一个的机会是多少?假设每个不确定的时间范围均匀地分布在确切的整个分钟内。因此4-7任务有25%的机会需要花费4、5、6或7分钟。 从图表中可以看出,在第29分钟有一个... …

15
m发生至少n次的概率
编写一个程序或函数,给定一个成功概率p,一个数n和多个试验m返回m次试验中至少 n次成功的机会。 您的答案必须精确到小数点后至少5位数字。 测试用例: 0.1, 10, 100 -> 0.54871 0.2, 10, 100 -> 0.99767 0.5, 13, 20 -> 0.13159 0.5, 4, 4 -> 0.06250 0.45, 50, 100 -> 0.18273 0.4, 50, 100 -> 0.02710 1, 1, 2 -> 1.00000 1, 2, 1 -> 0.00000 0, 0, 1 -> 1.00000 0, …

5
在3D中绘制高斯分布
在概率论中,正态(或高斯)分布是一种非常常见的连续概率分布。正态分布在统计中很重要,并且在自然科学和社会科学中经常用来表示其分布未知的实值随机变量。 挑战 您面临的挑战是在3维平面上绘制高斯分布的概率密度。该函数定义为: 哪里: 甲 = 1,σ X = σ ÿ = σ 规则 您的程序必须采用一个输入σ,即标准偏差。 您的程序必须在您的语言/系统允许的情况下,以最高质量打印高斯分布的3D图。 您的程序可能未使用直接的高斯分布或内置的概率密度。 您的程序不必终止。 您的情节可能是黑白或彩色的。 您的绘图的底部必须有网格线。侧面的网格线(如示例中所示)是不必要的。 您的绘图不需要在网格线旁边有线号。 计分 像在代码高尔夫球中一样,最少字节的提交将获胜!我可能永远不会使用按钮来“接受”答案,除非它很小且直观。 输出示例 您的输出可能看起来像这样: 或者它可能看起来像这样: 更 有效的 输出。无效的 输出。

6
N个碱基中的回文数
给定一个非负整数n >= 0,请永远输出x_i >= 3以完全n不同b的底数为回文数的整数序列,底数可以是2 <= b <= x_i-2。 这基本上是OEIS A126071的反函数,在此输出中该序列中的哪些索引具有值n。有点不同,因为我更改了它,所以您忽略了碱基b = x_i-1, x_i, x_i+1,因为这些碱基的结果始终是相同的(值始终是回文率,或者始终不是)。此外,偏移量也不同。 x_i限制为数字,>= 3因此每个结果的第一项n为A037183。 请注意,输出格式是灵活的,但是应该以很好的方式分隔数字。 例子: n seq 0 3 4 6 11 19 47 53 79 103 137 139 149 163 167 ... 1 5 7 8 9 12 13 14 22 23 25 29 35 …
10 code-golf  sequence  base-conversion  palindrome  code-golf  array-manipulation  matrix  code-golf  string  ascii-art  code-golf  ascii-art  physics  code-golf  number  sequence  fibonacci  code-golf  ascii-art  packing  code-golf  string  hexadecimal  code-challenge  restricted-source  decision-problem  binary  code-golf  code-golf  code-golf  stack-exchange-api  code-golf  string  parsing  generation  data-structures  code-golf  kolmogorov-complexity  graphical-output  code-golf  array-manipulation  integer  generation  data-structures  code-golf  number  random  probability-theory  king-of-the-hill  java  minesweeper  code-golf  string  kolmogorov-complexity  animation  code-golf  string  code-golf  code-golf  quine  code-golf  internet  code-golf  arithmetic  base-conversion 

11
“我”有“我”发生的机会
设计一个随机数生成器,其中第i个数字对于所有0 <i <14都有i%的出现几率。0应该恰好有9%的出现几率。生成器的种子应该是系统时间。您不能将预定义函数用于随机数生成。 基本上1发生的机率是1%,2发生的机率是2%,依此类推,直到13发生的机率是13%。这是代码高尔夫球,因此最短的代码获胜。

2
概率-您能走多高?
我之前曾问过一个问题,该如何快速准确地计算概率。但是,显然,提供封闭式解决方案太容易了!这是一个更困难的版本。 这项任务是关于编写代码以准确,快速地计算概率。输出应该是精确的概率,以最简化的形式写为分数。那是它永远不应该输出4/8,而应该输出1/2。 对于某个正整数n,请考虑一个长度为1s和-1s的均匀随机字符串,n并将其称为A。现在连接到A其自身的副本。那就是A[1] = A[n+1]从1开始索引,A[2] = A[n+2]依此类推。 A现在有长度2n。现在还考虑长度的第二随机串n,其第一n值是-1,0或1的概率是1 / 4,1 / 2,1/4每并调用它B. 现在考虑不同的Bwith 的内积。A[1+j,...,n+j]j =0,1,2,... 例如,考虑n=3。对于可能的值A,并B可能会A = [-1,1,1,-1,...]和B=[0,1,-1]。在这种情况下,前两个内积是0和2。 任务 对于每个j,从j=1您的代码开始,您的代码应该输出每个第一个j+1内积为零的概率n=j,...,50。 复制MartinBüttner生成的表,j=1我们得到以下示例结果。 n P(n) 1 1/2 2 3/8 3 7/32 4 89/512 5 269/2048 6 903/8192 7 3035/32768 8 169801/2097152 得分了 您的分数是j我的计算机在1分钟内完成的最大代码。为了澄清一点,每一个j都花一分钟。请注意,上一个链接的问题中的动态编程代码将很容易做到这一点j=1。 抢领带 如果两个条目获得相同的j分数,则获胜的条目将是n我机器上一分钟内得分最高的条目j。如果两个最佳作品在此标准上也相等,那么获胜者将是第一个提交的答案。 语言和图书馆 您可以使用任何喜欢的免费语言和库。我必须能够运行您的代码,因此请尽可能提供有关如何在Linux中运行/编译代码的完整说明。 我的机器时间将在我的机器上运行。这是在AMD FX-8350八核处理器上的标准ubuntu安装。这也意味着我需要能够运行您的代码。 获奖作品 j=2在Mitch Schwartz的Python中。 …

5
准确快速地计算概率
[这是一个精确计算概率的伙伴问题] 这项任务是关于编写代码以准确,快速地计算概率。输出应该是精确的概率,以最简化的形式写为分数。那是它永远不应该输出4/8,而应该1/2。 对于某个正整数n,请考虑一个长度为1s和-1s的均匀随机字符串,n并将其称为A。现在将A其串联为第一个值。就是说A[1] = A[n+1]从1 A开始的索引 现在具有length n+1。现在还考虑长度的第二随机串n,其第一n值是-1,0或1的概率是1 / 4,1 / 2,1/4每并调用它B. 现在考虑的内积A[1,...,n]和B和的内积A[2,...,n+1]和B。 例如,考虑n=3。对于可能的值A,并B可能会A = [-1,1,1,-1]和B=[0,1,-1]。在这种情况下,两个内积是0和2。 您的代码必须输出两个内积均为零的概率。 复制MartinBüttner制作的表,我们得到以下示例结果。 n P(n) 1 1/2 2 3/8 3 7/32 4 89/512 5 269/2048 6 903/8192 7 3035/32768 8 169801/2097152 语言和图书馆 您可以使用任何喜欢的免费语言和库。我必须能够运行您的代码,因此请尽可能提供有关如何在Linux中运行/编译代码的完整说明。 任务 您的代码必须以开头,n=1并在单独的一行上为每个递增的n提供正确的输出。10秒后应停止。 比分 分数只是在n计算机上运行10秒后代码停止之前达到的最高分数。如果平局,获胜者将是最快获得最高分的人。 条目表 n = 64在Python中。Mitch Schwartz的第1版 n = 106在Python中。版本Mitch …

20
计算获得抛硬币一半头的概率。
编写一个程序,给定标准输入的一个小的正偶数,它计算出翻转多个硬币将导致正面数目减少一半的概率。 例如,给定2个硬币,可能的结果是: HH HT TH TT 其中H和T是头和尾。有2个结果(HT和TH)的正面数是硬币数量的一半。共有4个结果,因此概率为2/4 = 0.5。 这比看起来简单。 测试用例: 2 -> 0.5 4 -> 0.375 6 -> 0.3125 8 -> 0.2734375

7
打假素!
简介/背景 在最近一次关于加密聊天的讨论中,我被挑战去讨论/帮助Fermat素数测试和Carmichael数字。该测试基于a^(p-1) mod p==1始终适用于素数p而不适用于复合材料的前提。现在,carmichael号码本质上是Fermat考验的最大敌人:您必须选择一个号码,a以使其不与素数p相抵a^(p-1) mod p!=1。现在,如果a不是互质,则基本上可以发现一个非平凡的因子p众所周知,保理可能相当困难。特别是在所有因素都足够大的情况下。您现在可能已经意识到,为什么在实践中不经常使用Fermat测试(还有更好的算法),这是因为作为防御者(在安全性方面)您需要为某些数字做与攻击者(即数量)。 因此,既然我们知道为什么这些数字有些引人入胜,我们将以最短的方式生成它们,因此只要需要,我们就可以记住生成的代码! Carmichael编号在OEIS上也称为A002997。已经 存在一个相关的挑战,但是这里的条目没有竞争力,因为它们是针对速度而非大小进行了优化的。同样的论点也适用于反方向,此处的输入可能会在速度上做出取舍,而有利于大小。 规格 输入项 这是一个标准 序列挑战,因此您将正整数或非负整数n作为输入。n可以根据需要选择0或1的索引(请指出)。 输出量 根据需要,您的输出将是n-th carmichael数或第一个ncarmichael数(请指出)。 规格 一个整数x是卡迈克尔数当且仅当x是复合材料和所有的整数y与gcd(x,y)=1,它认为y^(x-1) mod x==1。 谁赢? 这是 代码高尔夫球,因此以字节为单位的最短代码获胜!适用标准IO和漏洞规则。 测试用例 前几个carmichael号码是: 561,1105,1729,2465,2821,6601,8911,10585,15841, 29341,41041,46657,52633,62745,63973,75361,101101, 115921,126217,162401,172081,188461,252601,278545, 294409,314821,334153,340561,399001,410041,449065, 488881,512461
9 code-golf  math  sequence  number-theory  primes  code-golf  string  code-golf  math  combinatorics  permutations  restricted-complexity  code-golf  array-manipulation  code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

13
扩大比较链
与大多数语言不同,Python a<b<c会像在数学中一样进行评估,实际上是比较三个数字,而不是将布尔值a<b与进行比较c。用C(以及许多其他语言)编写此代码的正确方法是a<b && b<c。 在这个挑战中,您的任务是将这样任意长度的比较链从Python /直观表示扩展到如何用其他语言编写。 技术指标 您的程序必须要处理运算符:==, !=, <, >, <=, >=。 输入将具有仅使用整数的比较链。 不用担心一路比较的真实性,这纯粹是语法/语法上的挑战。 输入将没有任何空格,以防止答案因分割空格而使解析变得琐碎。 但是,您的输出可能只有一个空格,要么仅包含&&,要么包含比较运算符和&&,或者两者都不包含,但是要保持一致。 测试用例 Input Output --------------------------------------------------------------- 3<4<5 3<4 && 4<5 3<4<5<6<7<8<9 3<4 && 4<5 && 5<6 && 6<7 && 7<8 && 8<9 3<5==6<19 3<5 && 5==6 && 6<19 10>=5<7!=20 10>=5 && 5<7 && 7!=20 15==15==15==15==15 …
9 code-golf  parsing  conversion  syntax  code-golf  sequence  primes  code-challenge  geometry  optimization  code-golf  graph-theory  code-golf  number-theory  primes  integer  code-golf  source-layout  cops-and-robbers  code-golf  source-layout  cops-and-robbers  code-golf  sequence  primes  integer  code-golf  math  number-theory  primes  rational-numbers  code-golf  math  sequence  number-theory  primes  code-golf  string  code-golf  math  combinatorics  permutations  restricted-complexity  code-golf  array-manipulation  code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

30
给定int输入n,输出n * reversed(n)
给定一个整数n,打印输出n * reversed(n) reversed(n)是当您reverse的数字为时得到的数字n。 reverse(512) = 215 reverse(1) = 1 reverse(101) = 101 >>>>>>>> func(5) = 5*5 = 25 func(12) = 12*21 = 252 func(11) = 11*11 = 121 func(659) = 659*956 = 630004 最短的代码胜出! 排行榜 显示代码段 var QUESTION_ID=144816,OVERRIDE_USER=71625;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 …
9 code-golf  math  arithmetic  code-golf  math  integer  code-golf  arithmetic  integer  code-golf  sequence  base-conversion  palindrome  code-golf  math  primes  integer  code-golf  parsing  conversion  syntax  code-golf  sequence  primes  code-challenge  geometry  optimization  code-golf  graph-theory  code-golf  number-theory  primes  integer  code-golf  source-layout  cops-and-robbers  code-golf  source-layout  cops-and-robbers  code-golf  sequence  primes  integer  code-golf  math  number-theory  primes  rational-numbers  code-golf  math  sequence  number-theory  primes  code-golf  string  code-golf  math  combinatorics  permutations  restricted-complexity  code-golf  array-manipulation  code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

3
编码高尔夫随机正交矩阵
一个正交矩阵是方阵与真正的条目,其列和行是正交的单位向量(即,正交向量)。 这意味着M ^ TM = I,其中I是单位矩阵,^ T表示矩阵转置。 注意,这是正交的而不是“特殊正交”,因此M的行列式可以是1或-1。 挑战的目标不是机器精度,因此如果M ^ TM = I到4个小数位以内就可以了。 任务是编写采用正整数n > 1并输出n×n矩阵的正交正交代码。矩阵应从所有 n×n个正交矩阵中随机且均匀地选择。在这种情况下,“均一”是根据Haar测度定义的,这实际上要求如果乘以任何自由选择的正交矩阵,分布就不会改变。这意味着矩阵的值将是-1到1范围内的浮点值。 输入和输出可以是您认为方便的任何形式。 请显示代码运行的明确示例。 您不能使用任何现有的创建正交矩阵的库函数。这个规则有些微妙,所以我将进一步解释。该规则禁止使用任何现有函数,该函数需要一些(或不输入)输入并输出大小至少为n×n的矩阵,该矩阵必须保证正交。举一个极端的例子,如果您想要n×n单位矩阵,则必须自己创建。 您可以使用任何标准随机数生成器库来选择所需的随机数。 您的代码最多应在几秒钟内完成n < 50。

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.