Questions tagged «coding-theory»

对能够进行错误检测,错误纠正和/或压缩的数据表示的研究。

8
不含空格的摩尔斯电码是否可以唯一识别?
所有摩尔斯电码字符串都可以唯一识别吗?没有空格 ......-...-..---.-----.-..-..-.. 可能是,Hello World但第一个字母可能是5-实际上,它看起来不太可能任意点和破折号序列都具有唯一的翻译。 一个人可能会使用Kraft不等式,但这仅适用于前缀代码。 带空格的摩尔斯电码是前缀代码,在其中始终可以唯一地解码消息。一旦我们删除了空格,这将不再成立。 在我是对的情况下,不能完全解码所有摩尔斯电码消息的情况,有没有办法列出所有可能的消息?这是我在codegolf.SE上发现的一些相关练习 https://codegolf.stackexchange.com/questions/36735/morse-decode-golf https://codegolf.stackexchange.com/questions/131/morse-code-translator

2
为什么C的void类型不同于Empty / Bottom类型?
维基百科以及我发现的其他来源都将C的void类型列为单位类型,而不是空类型。我觉得这很混乱,因为在我看来,它void更适合于空/底类型的定义。 void据我所知,没有价值观存在。 返回类型为void的函数指定该函数不返回任何内容,因此只能执行某些副作用。 类型的指针void*是所有其他指针类型的子类型。同样,void*在C中进行来回转换是隐式的。 我不确定最后一点是否可以作为void空类型的参数,void*或多或少是与无关的特例void。 另一方面,void它本身不是所有其他类型的子类型,据我所知,这是将类型作为底部类型的要求。
28 type-theory  c  logic  modal-logic  coq  equality  coinduction  artificial-intelligence  computer-architecture  compilers  asymptotics  formal-languages  asymptotics  landau-notation  asymptotics  turing-machines  optimization  decision-problem  rice-theorem  algorithms  arithmetic  floating-point  automata  finite-automata  data-structures  search-trees  balanced-search-trees  complexity-theory  asymptotics  amortized-analysis  complexity-theory  graphs  np-complete  reductions  np-hard  algorithms  string-metrics  computability  artificial-intelligence  halting-problem  turing-machines  computation-models  graph-theory  terminology  complexity-theory  decision-problem  polynomial-time  algorithms  algorithm-analysis  optimization  runtime-analysis  loops  turing-machines  computation-models  recurrence-relation  master-theorem  complexity-theory  asymptotics  parallel-computing  landau-notation  terminology  optimization  decision-problem  complexity-theory  polynomial-time  counting  coding-theory  permutations  encoding-scheme  error-correcting-codes  machine-learning  natural-language-processing  algorithms  graphs  social-networks  network-analysis  relational-algebra  constraint-satisfaction  polymorphisms  algorithms  graphs  trees 

4
摩尔斯电码是二进制,三进制还是五进制的?
我正在阅读《代码:计算机硬件和软件的隐藏语言》这本书,在第二章中作者说: 莫尔斯电码被认为是二进制(字面意思是二乘二)代码,因为该代码的组成部分仅由两点组成-点和破折号。 另一方面,维基百科说: 严格来说,它不是二进制的,因为它有五个基本元素(请参阅quinary)。但是,这并不意味着摩尔斯电码不能表示为二进制代码。从抽象的意义上讲,这是电报运营商在传输消息时执行的功能(请参阅五进制)。 但话又说回来,另一个Wikipedia 页面在“二进制代码列表”中包含了摩尔斯电码。 我很困惑,因为我认为摩尔斯电码实际上是三元的。您有3种不同的“可能性”:静默,短蜂鸣或长蜂鸣。 用“搅拌二进制”表示莫尔斯电码是不可能的,不是吗? “严格二进制”是指二进制流:1010111101010 ..我应该如何表示静音,短蜂鸣和/或长蜂鸣? 我能想到的唯一方法是计算机实现的“字号”。如果我(和CPU /代码的解释器)知道每次将读取8位,那么我可以代表摩尔斯电码。我可以简单地用1表示一个短蜂鸣声,或用0表示一个长蜂鸣声,而沉默将由单词长度隐式表示。(假设是8位。)因此,我又有了这个第3个变量/第3个资产我的手:字号。 我的想法是这样的:在一个8位的字中,我可以为要读取的位保留前3位,为莫尔斯电码保留后5位。就像00110000代表'A'。而且我仍然处于“二进制”状态,但是我需要使它变为三进制的字长,不是吗?前3位表示:接下来的5位仅读取1位。 代替二进制,如果我们使用三进制,我们可以显示摩尔斯电码,例如:101021110102110222等。其中1是:dit 0是:dah,2是静默。通过使用222,我们可以对长时间的静音进行编码,因此,如果您具有*-* --- *-之类的信号,则可以显示为:102100022210,但是除非直接使用1和0,否则不可能直接使用就像我提到的“固定”字长一样,但这很好解释,而不是以二进制形式保存摩尔斯电码。想象一下像钢琴之类的东西,您只有钢琴按钮。您想用摩尔斯电码给某人留言,可以将按钮涂成黑色。您无法留下清晰的信息,不是吗?您还需要至少一种颜色,以便您可以设置静音(字符和单词之间的静音。这就是三叉戟的意思)。 我不是问您能否用57进制数或其他任何形式表示摩尔斯电码。 我已经通过电子邮件发送给作者(Charles Petzold);他说,他在“代码”的第9章中演示了摩尔斯电码可以解释为二进制代码。 我的想法哪里出问题了?我在读的书是摩尔斯电码是二进制吗?是否值得商bat?为什么在一个维基百科页面上将摩尔斯电码告诉成五进制,并且在“二进制码列表”页面中也列出了摩尔斯电码? 编辑:我已经通过电子邮件发送给作者并得到了回复: - - -原始信息 - - - 发件人:Koray Tugay [mailto:koray@tugay.biz] 发送:2015年3月3日,星期二,下午3:16 至:cp@charlespetzold.com 主题:莫尔斯电码真的是二进制的吗? 主席先生,您能否在这里看看我的问题:摩尔斯电码是二进制,三进制还是五进制的?五进制? 此致,Koray Tugay 来自:“查尔斯·皮佐尔德” 致:“'Koray Tugay'” 主题:RE:莫尔斯电码真的是二进制的吗?日期:3 2015年3月23:04:35 EET 在“代码”的第9章结尾处,我演示了莫尔斯电码可以解释为二进制代码。 - - -原始信息 - - - …


4
PRNG用于精确生成n个设置位的数字
我目前正在编写一些代码来生成二进制数据。我特别需要生成具有给定数量的设置位的64位数字;更准确地说,该过程应取并返回一个伪随机的64位数字,其中恰好位设置为,其余设置为0。0&lt;n&lt;640&lt;n&lt;640 < n < 64nnn111 我当前的方法涉及以下内容: 生成一个伪随机数64。kkk 计算的位数,并将结果存储在。kkkbbb 如果,输出 ; 否则转到1。b=nb=nb = nkkk 这行得通,但看起来并不优雅。是否有某种PRNG算法可以比这更优雅地生成带有设置位的数字?nnn

1
推断优化类型
在工作中,我的任务是推断一些有关动态语言的类型信息。我将语句序列重写为嵌套let表达式,如下所示: return x; Z =&gt; x var x; Z =&gt; let x = undefined in Z x = y; Z =&gt; let x = y in Z if x then T else F; Z =&gt; if x then { T; Z } else { F; Z } 由于我从一般类型信息开始,并试图推断出更具体的类型,因此自然的选择是精简类型。例如,条件运算符返回其真假分支类型的并集。在简单的情况下,它效果很好。 但是,在尝试推断以下类型时遇到了障碍: function …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 

2
有霍夫曼编码到算术编码的推广吗?
在试图理解霍夫曼编码,算术编码和范围编码之间的关系时,我开始想到霍夫曼编码的缺点与分数位打包问题有关。 也就是说,假设一个符号有240个可能的值,并且需要将其编码为位,即使您不需要“全” 8,因为每个符号8个位都可以表示256个可能的值,因此每个符号将被卡住8位每个符号。解决这个问题的方法就是我所说的“小数位压缩”,在这种情况下,您可以使用乘法以2的非幂次幂进行“移位”。就像2的幂的乘积是移位的x * 2 == x &lt;&lt; 1,x * 4 == x &lt;&lt; 2等等对于2的所有幂一样,所以您也可以通过乘以非2的幂来“移位”,然后打包成小数位大小的符号。 问题与霍夫曼编码类似:您最终得到的代码长度必须是非小数位大小的,因此这种打包效率很低。但是,您不能只使用fracitonal-bit-packing解决方案,因为该解决方案假定使用固定大小的符号。 问题是,是否有任何论文或解决方案可对霍夫曼编码进行改进,其思想与小数位打包相似,可实现类似于算术编码的功能?(或任何相反的结果)。

1
纠错率令人误解
在编码理论中,“代码的质量”是指可以纠正或更好地纠正代码可以处理的最大噪声水平的信道错误数量。 为了获得更好的代码,这些代码是使用大字母(而不是二进制字母)设计的。然后,如果该代码可以处理大量错误的“符号”,则该代码是好的。 为什么不考虑作弊呢?我的意思是,我们不应该只在乎将每个符号“转换”为二进制字符串时会发生什么吗?“位错误率”与“符号错误”率不同。例如,如果使用足够大的字母,则误码率不能超过1/2,而如果我理解正确的话,则符号误码率可以升至。这是因为我们人为地限制了通道只能更改“符号”而不是位,还是因为代码实际上更好?1 − ϵ1个-ϵ1-\epsilon

2
是否存在长度为6,大小为32和距离为2的二进制代码?
问题是证明或反对,st,的存在。 ; ; 。(代表汉明距离)CCC|c|=6,∀c∈C|C|=6,∀C∈C|c| = 6,\forall c\in C|C|=32|C|=32|C| = 32d(ci,cj)≥2,1≤i&lt;j≤32d(C一世,CĴ)≥2,1个≤一世&lt;Ĵ≤32d(c_i,c_j)\geq2,1\leq i<j\leq32ddd 我试图构造一个令人满意的代码。我能得到的最好结果是让(的串联,其大小为恰好是该大小的理论上限,现在我不知道不知道下一步该怎么做才能解决问题。C=C′×C′C=C′×C′C = C'\times C'C′={000,011,110,101}C′={000,011,110,101}C' = \{000,011,110,101\}

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.