Questions tagged «markov-chain»

30
用给定的宽度绘制空心的#
我从Codingame那里获得了这一挑战,并且对比我的更好的解决方案感到好奇: 通过标准输入给定宽度,在给定的宽度和长度上绘制一个空心的#号正方形。 例: 5结果 ##### # # # # # # ##### 我用python解决了这个问题,所以我对其他python代码特别感兴趣。但是,请随时以所需的任何语言发布您的解决方案。
21 code-golf  string  ascii-art  number  code-golf  grid  code-golf  string  ascii-art  code-golf  alphabet  cipher  code-golf  math  number  code-golf  quine  code-golf  palindrome  polyglot  code-golf  number  array-manipulation  counting  logic  code-golf  string  primes  binary  decision-problem  code-golf  ascii-art  kolmogorov-complexity  popularity-contest  code-golf  probability-theory  code-golf  string  code-golf  python  polyglot  programming-puzzle  c++  code-golf  math  code-golf  binary  integer  bitwise  code-golf  rational-numbers  code-golf  string  palindrome  code-golf  ascii-art  code-golf  code-golf  string  fibonacci  code-golf  math  sequence  code-golf  code-golf  string  palindrome  code-golf  string  code-golf  math  primes  source-layout  code-golf  sequence  binary  integer  code-golf  math  arithmetic  game  code-golf  restricted-source  palindrome  code-golf  restricted-source  palindrome  code-golf  combinatorics  binary  code-golf  string  math  code-golf  ascii-art  number  code-golf  cipher  code-golf  base-conversion  counting  code-golf  sequence  random  classification  code-golf  string  subsequence  code-golf  permutations  code-golf  string  code-golf  string  cipher  code-golf  kolmogorov-complexity  arithmetic  integer  code-golf  quine  markov-chain  code-golf  string  code-golf  code-golf  ascii-art  maze 

9
马尔可夫链奎因
这个问题将使用一个简单的马尔可夫模型。有关马尔可夫链的更多信息,请参见http://setosa.io/ev/markov-chains/。 拿一根绳子。在此示例中,我们将使用以下单词: reader 现在,对于每个字符,取字符串中每次出现该字符后出现的字符。(​`^`​代表字符串的开始并​`$`​代表结束) `^` -> {'r'} # After the start of the string, there is an `r`. 'r' -> {'e', `$`} # After the first `r` (*r*eader), there is an `e` # after the second (reade*r*), there is the end of the string. 'e' -> {'a', 'r'} 'a' -> …

4
马尔可夫链节拍发生器
前几天我只是有个主意:按照预定义的声音的马尔可夫链拍拍。 我记得有人用Google Translate和德语做了一个节拍盒(点击链接并按监听)。 因此,挑战在于如何从给定的链中为Google翻译构建文本输入。或者,您可以使用音符并自己演奏:)。 您可以使程序读取一条带有拍数的行,另一条读取其名称和几率的矩阵表示形式(可以选择表示形式)。 您也可以使用这三个参数来创建函数。 例如 [输入] 20 pv zk bschk kkkk [[.1, .4, .5, 0.], [.3, .2, .3, .2], [0., .3, .2, .5], [.1, .8, .1, 0.]] [输出]类似: pv zk bschk zk pv bschk zk pv zk bschk kkkk pv bschk zk bschk bschk bschk zk kkkk bschk …

5
二进制卷积
二进制卷积由数字描述M,并应用于数字N。对于的二进制表示形式中的每个位M,如果将该位设置为(1),则通过将与相应位中的相应位相邻的两个位进行XOR N(在必要时进行环绕)来给出输出中的相应位。如果未设置该位(0),则输出中的相应位由中的相应位给出N。 一个有效的示例(具有8位值): 让N = 150,M = 59。它们的二进制表示形式分别为10010110和00111011。 根据M的二进制表示形式,卷积0、1、3、4和5。 位0的结果由对位1和7进行XOR运算得出(因为我们进行了环绕),得出1。 位1的结果由位0和2的XOR运算得出0。 位2的结果由原始位2给出,即1。 第3位的结果由第2位和第4位的XOR运算得出0。 位4的结果由位3和5的XOR运算得出0。 第5位的结果由第4位和第6位的XOR运算得出1。 位6和7的结果由原始位6和7给出,得出0和1。 因此,输出为10100110(166)。 挑战 给定N和M,输出执行Mon上描述的二进制卷积的结果N。输入和输出可以采用任何方便,一致且明确的格式。N并且M将始终在(包括)范围内[0, 255](8位无符号整数),并且应将其二进制表示形式填充为8位以执行二进制卷积。 测试用例 150 59 -> 166 242 209 -> 178 1 17 -> 0 189 139 -> 181 215 104 -> 215 79 214 -> 25 190 207 -> 50 61 …
15 code-golf  binary  integer  bitwise  code-golf  rational-numbers  code-golf  string  palindrome  code-golf  ascii-art  code-golf  code-golf  string  fibonacci  code-golf  math  sequence  code-golf  code-golf  string  palindrome  code-golf  string  code-golf  math  primes  source-layout  code-golf  sequence  binary  integer  code-golf  math  arithmetic  game  code-golf  restricted-source  palindrome  code-golf  restricted-source  palindrome  code-golf  combinatorics  binary  code-golf  string  math  code-golf  ascii-art  number  code-golf  cipher  code-golf  base-conversion  counting  code-golf  sequence  random  classification  code-golf  string  subsequence  code-golf  permutations  code-golf  string  code-golf  string  cipher  code-golf  kolmogorov-complexity  arithmetic  integer  code-golf  quine  markov-chain  code-golf  string  code-golf  code-golf  ascii-art  maze 

5
离解出版社
http://en.wikipedia.org/wiki/Dissociated_press Dissociated Press是一种从现有文本生成随机文本的算法。 该算法从在文本中打印任何N个连续的单词(或字母)开始。然后在每个步骤中,它搜索已经打印的最后N个单词(或字母)的原始文本中是否有随机出现,然后打印下一个单词或字母。 以功能或整个程序的形式实施Dissociated Press。最短的代码获胜。不要使用命令行或emacs脚本来调用原始的Dissociated Press程序。不要使用任何外部库。

2
Marcel Proust和Markov解密安全服务的T9文本
好像这个挑战可能在本质上是更多的Python风格 ... 不需要先验的Markov链或加密技术知识。 您是间谍,需要从英国安全服务M1S获得一些关键信息。M1S的代理很清楚,他们的Wi-Fi信号可以被拦截,利用了他们的Android / iOS安全漏洞等,因此他们所有人都使用Nokia 3310来传输使用T9自动完成功能键入的文本信息。 您以前曾破解过要交付给情报机构的电话,并在光荣的塑料键盘下安装了键盘记录程序,所以现在您收到的数字序列与他们键入的字母相对应,因此“ 鹰离开了巢穴提醒代理商 ” 84303245304270533808430637802537808430243687 可是等等!某些T9序列含糊不清(“ 6263”可能是“名称”,“鬃毛”或“双簧管”;模糊性越大,可疑性就越大!),那么您该怎么办?您知道,M1S唯一使用的入学考试是在15秒内总结Marcel Proust的杰作“回忆过去的事”,因此您要根据整个主厨中的频率分布来选择上一个单词之后的单词。普鲁斯特的魅力! 您可以破解代码并获取原始消息吗? T9的原理 T9自动完成机制可以描述如下。如上图所示,它将字母字符映射为数字。 abc -> 2 def -> 3 ghi -> 4 jkl -> 5 mno -> 6 pqrs -> 7 tuv -> 8 wxyz -> 9 <space> -> 0 <other> -> <is deleted> T9解密器接收到一个数字序列,并尝试猜测可以通过这些按键键入的单词。它可能使用标准的频率表,但我们要进一步走一步,并使用马尔可夫链预测下一个单词! 学习样本 …

4
朴素的马尔可夫链词生成
有许多产生随机单词的方法。您可以从集合中提取随机音节,可以使用n元组,可能使用神经网络(它们不能做什么?),在辅音和元音之间交替等等。到目前为止,此挑战所基于的方法是最差的。它使用马尔可夫链生成随机词。如果您熟悉马尔可夫链,您可能会知道为什么这种方法如此糟糕。 如果您想阅读有关马尔可夫链的信息,请单击此处。 您的程序将采用加权马尔可夫链的方法,输入一个或多个单词并生成一个随机单词。既然这可能对我来说都没有道理,那么以下是使用马尔可夫链的图片并输入以下内容的一种解释abba: (所有图片的所有边缘权重都相同)您的程序将基于输入文本通过马尔可夫链输出路径。如您所见,它将有1/2的机会输出a,1/8的机会,1/ aba16的机会abba,1/32的机会ababa,等等。 以下是一些其他示例马尔可夫链: yabba dabba doo wolfram supercalifragilisticexpialidocious 如果您需要更多示例,请使用this。(我太努力了) 挑战详情: 输入可以作为字符串列表,也可以作为空格,逗号或换行符分隔的字符串 您可能会假设所有单词都将全部为小写且没有标点符号(ASCII 97-122) 您可以编写程序或函数 为了进行测试,您可能可以输入示例并查看所有输入是否与马尔可夫链对齐 这是 代码高尔夫球,因此您的程序以字节计。 让我知道是否有任何不清楚的地方,我将尝试使其更有意义。

1
淘汰概率
淘汰赛是一种篮球比赛,球员轮流投篮。它按两人比赛的顺序进行,每场比赛都有可能“淘汰”其中一名球员。 假设球员A B C D和他们的投篮机会和制造篮筐的机会0.1 0.2 0.3 0.4分别与比赛中的其他球员无关。两位选手在该行的前面,A而B“战斗”。由于A先行,他是后卫,在被淘汰出局的危险,并且B是攻击者,而不是立即消除危险。A首先射击。如果成功A,则A已经成功防御,并前进到了队伍的后部。该行将更改为B C D A。如果A没有成功,则B射击。如果B成功,则出线A并B转到行尾,因此行变为C D B。如果两者都不A如果没有B成功,则重复此过程,并A再次射击,直到A或B做出一个篮子。 假设线路更改为B C D A(A已成功防御)。现在,B与C“战斗”B作为后卫,并且C是攻击者。重复此过程,直到只剩下一个人为止。那个人是赢家。 您的任务是计算每个人赢得一篮子机会的获胜概率。 输入: 数字列表,例如0.1 0.2或0.5 0.5 0.5 0.5,其中第n个数字是第n个个玩家上篮。您可以采用任意格式的输入,包括作为函数的参数。 输出量: 数字列表,其中第n个数字是第n个玩家赢得比赛的机会。您的数字至少在90%的时间内必须精确到至少两位小数。这意味着您可以使用基于仿真的方法。但是,如果您的代码不是基于仿真的(可以保证返回正确的答案至少到小数点后6位),那么您的分数将减少30%。 之间的示例0.5 0.5:呼叫玩家A和B。设pA获胜的概率。A拥有2/3的成功卫冕的机会(因为有一个1/2机会A得分,一个1/4机会,A命中和B得分和1/4机会都错过并重复上述过程)。如果A未能防守,他将被淘汰并B获胜。如果A防御,则该行变为B A。由于情况是对称的,因此A获胜的概率为(1 - p)。我们得到: p = 2/3 * (1 - p) + 1/3 * 0。解决,我们得到p = 2/5。输出应为2/5 3/5或0.4 0.6。 我没有足够的机率做更复杂的例子。 如果您需要更多的测试用例,请参考以下几个示例: 0.1 0.2 …
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.