คำถามติดแท็ก coding-theory

การศึกษาการแสดงข้อมูลที่เปิดใช้งานการตรวจจับข้อผิดพลาดการแก้ไขข้อผิดพลาดและ / หรือการบีบอัด

8
รหัสมอร์สที่ไม่มีช่องว่างสามารถถอดรหัสได้หรือไม่
สตริงรหัสมอร์สทั้งหมดสามารถถอดรหัสได้โดยไม่ซ้ำกันหรือไม่? ไม่มีช่องว่าง ......-...-..---.-----.-..-..-.. อาจเป็นได้Hello Worldแต่บางทีตัวอักษรตัวแรกคือ5- ในความเป็นจริงมันดูไม่น่าจะเป็นไปได้มากตามลำดับจุดและขีดคั่นควรมีการแปลที่เป็นเอกลักษณ์ อาจเป็นไปได้ว่าอาจใช้อสมการคราฟท์แต่ใช้กับรหัสนำหน้าเท่านั้น รหัสมอร์สที่มีช่องว่างเป็นรหัสนำหน้าซึ่งข้อความสามารถถอดรหัสได้ไม่ซ้ำกัน เมื่อเราลบช่องว่างออกแล้วสิ่งนี้จะไม่เป็นจริงอีกต่อไป ในกรณีที่ฉันถูกและข้อความรหัสมอร์สทั้งหมดไม่สามารถถอดรหัสได้โดยไม่ซ้ำมีวิธีการแสดงข้อความที่เป็นไปได้ทั้งหมดหรือไม่ นี่คือแบบฝึกหัดที่เกี่ยวข้องที่ฉันพบใน codegolf.SE https://codegolf.stackexchange.com/questions/36735/morse-decode-golf https://codegolf.stackexchange.com/questions/131/morse-code-translator

2
เหตุใด C ประเภทโมฆะจึงไม่คล้ายกับประเภทที่ว่าง / ด้านล่าง
Wikipedia ตลอดจนแหล่งข้อมูลอื่น ๆ ที่ฉันได้พบรายการvoidประเภทC เป็นหน่วยประเภทซึ่งตรงข้ามกับประเภทที่ว่างเปล่า ฉันพบว่ามันสับสนเพราะฉันคิดว่า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?
ฉันกำลังอ่านหนังสือ: " รหัส: ภาษาที่ซ่อนอยู่ของฮาร์ดแวร์คอมพิวเตอร์และซอฟต์แวร์ " และในบทที่ 2 ผู้เขียนบอกว่า: รหัสมอร์สกล่าวกันว่าเป็นรหัสไบนารี่ (หมายถึงตัวอักษรสองต่อสอง) เพราะส่วนประกอบของรหัสประกอบด้วยเพียงสองสิ่ง - จุดและเส้นประ Wikipediaกล่าวว่า: พูดอย่างเคร่งครัดไม่ใช่ไบนารีเนื่องจากมีห้าองค์ประกอบพื้นฐาน (ดู quinary) อย่างไรก็ตามนี่ไม่ได้หมายความว่ารหัสมอร์สไม่สามารถแสดงเป็นรหัสไบนารี่ได้ ในแง่นามธรรมนี่คือฟังก์ชั่นที่ตัวดำเนินการโทรเลขดำเนินการเมื่อส่งข้อความ (ดูที่ quinary) แต่แล้วอีกครั้งหน้า Wikipedia อีกอันก็มีรหัสมอร์สใน 'รายชื่อรหัสไบนารี' ฉันสับสนมากเพราะฉันคิดว่ารหัสมอร์สเป็นจริงประกอบไปด้วย คุณมี 'ความเป็นไปได้ 3 ประเภทที่แตกต่างกัน: ความเงียบเสียงบี๊ปสั้นหรือเสียงบี๊บยาว เป็นไปไม่ได้ที่จะเป็นตัวแทนของรหัสมอร์สใน 'stirct binary' ใช่ไหม? โดย 'binary ที่เข้มงวด' ฉันหมายถึงคิดถึงกระแสของไบนารี: 1010111101010 .. ฉันควรจะเป็นตัวแทนของความเงียบเสียงบี๊ปสั้นและ / หรือเสียงบี๊บยาวอย่างไร วิธีเดียวที่ฉันคิดได้ก็คือ 'ขนาดของคำ' ที่คอมพิวเตอร์ใช้ ถ้าฉัน (และ CPU …

4
การเข้ารหัส Huffman: ทำไมถึงไม่มีความจำเป็นสำหรับตัวคั่น
Char Code ==== ==== E 0000 i 0001 y 0010 l 0011 k 0100 . 0101 space 011 e 10 r 1100 s 1101 n 1110 a 1111 ข้อความต้นฉบับ: ตาน่าขนลุกเห็นใกล้ทะเลสาบ เข้ารหัส: 0000101100000110011100010101101101001111101011111111111111111111111111111111100100101 เข้ารหัส เหตุใดจึงไม่จำเป็นต้องมีตัวคั่นในการเข้ารหัส Huffman

4
PRNG สำหรับสร้างตัวเลขด้วย n บิตตั้งค่า
ฉันกำลังเขียนโค้ดบางส่วนเพื่อสร้างข้อมูลไบนารี ฉันต้องการสร้างหมายเลข 64 บิตด้วยจำนวนบิตที่กำหนดโดยเฉพาะ แม่นยำยิ่งขึ้นขั้นตอนควรใช้เวลาและส่งกลับตัวเลข 64 บิตหลอกเทียมด้วยบิตตั้งค่าเป็นและส่วนที่เหลือตั้งค่าเป็น 00&lt;n&lt;640&lt;n&lt;640 < n < 64nnn111 แนวทางปัจจุบันของฉันเกี่ยวข้องกับสิ่งนี้: สร้าง pseudorandom 64 บิตจำนวนkkkk นับบิตในจัดเก็บผลในขkkkbbb ถ้า , เอาต์พุต ; มิฉะนั้นไปที่ 1b=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 } เนื่องจากฉันเริ่มต้นจากข้อมูลประเภททั่วไปและพยายามอนุมานประเภทที่เฉพาะเจาะจงมากขึ้นตัวเลือกที่เป็นธรรมชาติคือประเภทการปรับแต่ง ตัวอย่างเช่นตัวดำเนินการตามเงื่อนไขส่งคืนการรวมของประเภทของสาขาที่เป็นจริงและเท็จ …
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
มีลักษณะทั่วไปของการเข้ารหัส Huffman การเข้ารหัสทางคณิตศาสตร์หรือไม่
ในความพยายามที่จะเข้าใจความสัมพันธ์ระหว่าง Huffman Coding, เลขคณิต Coding และช่วงการเข้ารหัสที่ฉันเริ่มที่จะคิดว่าข้อบกพร่องของ Huffman การเข้ารหัสจะเกี่ยวข้องกับปัญหาของเศษส่วนบิตบรรจุ นั่นคือสมมติว่าคุณมี 240 ค่าที่เป็นไปได้สำหรับสัญลักษณ์และจำเป็นต้องเข้ารหัสนี้เป็นบิตคุณจะติดกับ 8 บิตต่อสัญลักษณ์แม้ว่าคุณไม่ต้องการ "เต็ม" 8 เนื่องจาก 8 สามารถแสดง 256 ค่าที่เป็นไปได้ ต่อสัญลักษณ์ วิธีแก้ปัญหานี้คือสิ่งที่ฉันเคยเห็นเรียกว่า "การบรรจุบิตเศษส่วน" ซึ่งคุณสามารถ "bitshift" โดยไม่ใช้กำลังสองโดยใช้การคูณ เช่นเดียวกับการเพิ่มทวีคูณของ powers-of-two x * 2 == x &lt;&lt; 1และx * 4 == x &lt;&lt; 2สำหรับพลังทั้งหมดของสองดังนั้นคุณสามารถ "shift" ด้วย non-power-of-2 โดยการคูณแทนและแพ็คในสัญลักษณ์เศษส่วนขนาดบิต . ปัญหาคล้ายกับการเข้ารหัส Huffman: คุณต้องจบด้วยรหัสที่ต้องมีความยาวไม่เป็นเศษส่วนขนาดบิตดังนั้นจึงมีการบรรจุที่ไม่มีประสิทธิภาพ อย่างไรก็ตามคุณไม่สามารถใช้โซลูชันของ …

1
อัตราการแก้ไขข้อผิดพลาดทำให้เข้าใจผิด
ในทฤษฎีการเข้ารหัส 'วิธีที่ดีรหัสคือ' หมายความว่ามีกี่ข้อผิดพลาดของช่องที่สามารถแก้ไขได้หรือดีกว่าระดับเสียงรบกวนสูงสุดที่รหัสสามารถจัดการได้ เพื่อให้ได้รหัสที่ดีกว่ารหัสนั้นได้รับการออกแบบโดยใช้ตัวอักษรขนาดใหญ่ (แทนที่จะเป็นเลขฐานสอง) จากนั้นรหัสจะดีถ้าสามารถจัดการกับ "สัญลักษณ์" ที่มีอัตราผิดพลาดจำนวนมาก เหตุใดจึงไม่พิจารณาการโกง? ฉันหมายความว่าเราไม่ควรสนใจว่าจะเกิดอะไรขึ้นเมื่อเรา "แปล" สัญลักษณ์แต่ละตัวเป็นสตริงไบนารีหรือไม่ "rate of bit error" แตกต่างจาก rate ของ "symbol error" ยกตัวอย่างเช่นอัตราบิตข้อผิดพลาดไม่สามารถไปข้างต้นในขณะที่ 1/2 (ถ้าผมเข้าใจอย่างถูกต้อง) มีตัวอักษรขนาดใหญ่พอสัญลักษณ์ข้อผิดพลาดสามารถไปได้ถึง1-นี่คือเพราะเราเทียมจำกัด ช่องทางที่จะเปลี่ยนเฉพาะ "สัญลักษณ์" มากกว่าบิตหรือจะเป็นเพราะรหัสเป็นจริงดีกว่า?1 - ϵ1-ε1-\epsilon

2
รหัสเลขฐานสองที่มีความยาว 6 ขนาด 32 และระยะทาง 2 อยู่หรือไม่
ปัญหาคือการพิสูจน์หรือพิสูจน์หักล้างการดำรงอยู่ของ คCC, เซนต์, | c | =6,∀c∈C|c|=6,∀c∈C|c| = 6,\forall c\in C; | ค| =32|C|=32|C| = 32; d(คผม,คJ) ≥ 2 , 1 ≤ i &lt; j ≤ 32d(ci,cj)≥2,1≤i&lt;j≤32d(c_i,c_j)\geq2,1\leq i<j\leq32. (ddd ย่อมาจากระยะทาง hamming) ฉันพยายามสร้างรหัสที่น่าพอใจ สิ่งที่ดีที่สุดที่ฉันจะได้รับคือปล่อยให้ค=ค'×ค'C=C′×C′C = C'\times C'เรียงต่อกันของ ค'= { 000 , 011 , 110 , 101 }C′={000,011,110,101}C' = \{000,011,110,101\}ซึ่งมีขนาด 16 32 …

2
ต้นไม้ Huffman และความลึกสูงสุด
รู้ความถี่ของสัญลักษณ์แต่ละตัวเป็นไปได้หรือไม่ที่จะกำหนดความสูงสูงสุดของต้นไม้โดยไม่ใช้อัลกอริทึม Huffman? มีสูตรที่ให้ความสูงของต้นไม้นี้หรือไม่?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.