标签: morse-code

如何分析或改进我的侄女基于摩尔斯电码的简单压缩算法?

我8岁的侄女昨天在学校接受了摩尔斯电码的教训,她的任务是将各种短语转换成莫尔斯电码.其中一个短语包括她的年龄,而不是写作---..,她写道,3-2.因为(用她的话说),"这样写的不那么简单." 这个基本的"压缩算法"引起了我的好奇心,所以我写了一些代码来实现它.

但是,我们在此过程中做了一些改变.我指给她,如果你写的只是.....-----,没有任何办法判断作者的意思50eeeeettttt.实际上,每个单词的每个字母和每个单词之间都有一个暂停,所以这不是问题,但我们的方案没有那个.我拿出了一些方格纸并建议用另一个符号填充每个符号的莫尔斯码,以便于编码并消除方案中的歧义.我的好建议使用+因为"没有人用句子写那些." (哎呀,我最近刚毕业时获得了数学学位,但还算公平.)

因为我们中的一些带写+,我们都使用连字符和句号/点,这与我们的摩尔斯电码标准的定义发生冲突,这些符号将被替换p,hd分别.当然,这给我们带来了如何处理未在我们扩展的摩尔斯电码中定义的符号的问题.我的侄女想要简单地忽略它们,这就是我们所做的.为了区分大小写保留文本消息,大写字母在代码中不是低位的; 它们只是按原样进行填充+.

算法摘要:

  1. 莫尔斯代码右边填充为5个字符 +
  2. 我们扩展了摩尔斯电码替代p+,d对于.h-.
  3. 未在我们的"扩展"摩尔斯电码中定义的符号将完整传递.
  4. 除非仅出现一个连续字符,否则符号运行将被替换,在这种情况下,数字将被省略.

潜在的陷阱:

  1. 我的填充方案可能会降低压缩效率.
  2. 使用大于5个字符的块可以改进压缩
  3. 如果我的侄女或我对压缩算法一无所知,我们可能会使用它来使它们成功.
  4. 这显然不适合生产,但由于有许多有效的压缩算法用于此类目的,我暂时忽略了这个问题.
  5. ???

例:

在我们的算法中,"Hello,World"转换为

H++++.++++.-..+.-..+---++,+++++++++W++++---++.-.++.-..+-..++
Run Code Online (Sandbox Code Playgroud)

并压缩到

H4+.4+.-2.+.-2.+3-2+,9+W4+3-2+.-.2+.-2.+-2.2+
Run Code Online (Sandbox Code Playgroud)

这是我扔在一起的Python代码:

#!/usr/bin/python3

import itertools
import string

class MorseString(str):
    def __init__(self, string):
        # or, pad values during iteration but this seems neater …
Run Code Online (Sandbox Code Playgroud)

python algorithm morse-code python-3.x

12
推荐指数
1
解决办法
1000
查看次数

在摩尔斯电码转换器中允许多个字符

我正在制作一个程序,它接受输入并以计算机蜂鸣声的形式将其转换为莫尔斯代码,但我无法弄清楚如何制作它以便我可以在输入中放置多个字母而不会出现错误.

这是我的代码:

import winsound
import time

morseDict = {
'a': '.-',
'b': '-...',
'c': '-.-.',
'd': '-..',
'e': '.',
'f': '..-.',
'g': '--.',
'h': '....',
'i': '..',
'j': '.---',
'k': '-.-',
'l': '.-..',
'm': '--',
'n': '-.',
'o': '---',
'p': '.--.',
'q': '--.-',
'r': '.-.',
's': '...',
't': '-',
'u': '..-',
'v': '...-',
'w': '.--',
'x': '-..-',
'y': '-.--',
'z': '--..'
}
while True: 
    inp = raw_input("Message: ")
    a = morseDict[inp] 
    morseStr =  a
    for c in morseStr:
        print c …
Run Code Online (Sandbox Code Playgroud)

python dictionary morse-code

8
推荐指数
1
解决办法
3395
查看次数

摩尔斯电码到英文python3

我想使用Python 3+将莫尔斯电码转换为英语我已经设法使用此http://code.activestate.com/recipes/578407-simple-morse-code-translator-in-python/将英语转换为莫尔斯电码

但我想将莫尔斯电码转换为英语

我试图一次做一个字符,但问题是莫尔斯代码字母不像英文字母那样长,所以E是"." 而S是"......",我的问题是字典循环会找到"." 并将它与E匹配,所以我没有得到S我得到"EE E",而是试图通过检测空格并一次一个字来解决这个问题,但不是在单词中查找字母而是搜索整个单词字典我是Python和词典的新手,我不知道如何区分E"." 在搜索我的字典时,还有一个S"......"

这是我的代码

# defines the dictionary to convert morse to english
CODE_reversed = {'..-.': 'F', '-..-': 'X',
                 '.--.': 'P', '-': 'T', '..---': '2',
                 '....-': '4', '-----': '0', '--...': '7',
                 '...-': 'V', '-.-.': 'C', '.': 'E', '.---': 'J',
                 '---': 'O', '-.-': 'K', '----.': '9', '..': 'I',
                 '.-..': 'L', '.....': '5', '...--': '3', '-.--': 'Y',
                 '-....': '6', '.--': 'W', '....': 'H', '-.': 'N', '.-.': 'R',
                 '-...': 'B', '---..': '8', '--..': 'Z', '-..': 'D', …
Run Code Online (Sandbox Code Playgroud)

python dictionary morse-code

7
推荐指数
1
解决办法
1万
查看次数

Java:MorseCode Converter

我正在尝试将莫尔斯代码转换为文本.

我有两个文本文件用于此问题.morseCode.txt:我有一个我读过的文件,其中包含相应的字母和相应的摩尔斯电码.

morse.dat:包含摩尔斯电码加密消息的文件

我能够正确读取第一个文件然后存储到单独的数组中.我通过打印字母和数组莫尔斯代码来测试它,发现它确实按顺序存储它.

我在阅读第二个文件时遇到问题.这是morseCode.txt键:

A   .- 
B   -... 
C   -.-. 
D   -.. 
E   . 
F   ..-. 
G   --. 
H   .... 
I   .. 
J   .--- 
K   -.- 
L   .-.. 
M   -- 
N   -. 
O   --- 
P   .--. 
Q   --.- 
R   .-. 
S   ... 
T   - 
U   ..- 
V   ...- 
W   .-- 
X   -..- 
Y   -.-- 
Z   --..
0   ----- 
1   .---- 
2   ..--- 
3   ...-- 
4   ....- 
5   ..... 
6   -.... 
7   --... 
8   ---.. 
9   ----. 
.  .-.-.- 
, …
Run Code Online (Sandbox Code Playgroud)

java morse-code

6
推荐指数
1
解决办法
1万
查看次数

PHP Morse代码转换器

我正在用PHP写一个基本的莫尔斯电码转换器,可以将一个字符串转换成莫尔斯电码。它使用关联数组,foreach循环和for循环。它起作用,除了出于某种原因,它在每个转换的字符之后输出与“ 0”等效的摩尔斯电码。我不知道0的来源。如果我从关联数组中删除0,就没有问题,但是我也希望能够转换数字。如果有人能够给我一些反馈,将不胜感激。

这是代码:

<?php
$string = "dog";
$string_lower = strtolower($string);
$assoc_array = array(
    "a"=>".-",
    "b"=>"-...", 
    "c"=>"-.-.", 
    "d"=>"-..", 
    "e"=>".", 
    "f"=>"..-.", 
    "g"=>"--.", 
    "h"=>"....", 
    "i"=>"..", 
    "j"=>".---", 
    "k"=>"-.-", 
    "l"=>".-..", 
    "m"=>"--", 
    "n"=>"-.", 
    "o"=>"---", 
    "p"=>".--.", 
    "q"=>"--.-", 
    "r"=>".-.", 
    "s"=>"...", 
    "t"=>"-", 
    "u"=>"..-", 
    "v"=>"...-", 
    "w"=>".--", 
    "x"=>"-..-", 
    "y"=>"-.--", 
    "z"=>"--..", 
    "0"=>"-----",
    "1"=>".----", 
    "2"=>"..---", 
    "3"=>"...--", 
    "4"=>"....-", 
    "5"=>".....", 
    "6"=>"-....", 
    "7"=>"--...", 
    "8"=>"---..", 
    "9"=>"----.",
    "."=>".-.-.-",
    ","=>"--..--",
    "?"=>"..--..",
    "/"=>"-..-.",
    " "=>" ");
    for($i=0;$i<strlen($string_lower);$i++){
        foreach($assoc_array as $letter => $code){
            if($letter == $string_lower[$i]){
                echo "$code<br/>";
            }
        }
    }
?>
Run Code Online (Sandbox Code Playgroud)

php arrays loops converter morse-code

5
推荐指数
1
解决办法
3241
查看次数

翻译摩尔斯电码没有空格

我有一些莫尔斯代码丢失了字母之间的空格,我的挑战是找出消息所说的内容.到目前为止,由于可能存在大量的组合,我有点失落.

以下是我所拥有的消息的所有信息.

  • 输出将是英语
  • 总会有一个有意义的翻译
  • 这是和示例消息 -..-...-...-...-..-.-.-.-.-..-.-.-.-.-.-.-.-.-.-..-...-.
  • 消息不应超过70个字符
  • 莫尔斯电码是从更长的流中获取的,因此第一组或最后一组可能会被切断,因此没有有效的翻译

有没有人有一个聪明的解决方案?

puzzle morse-code

4
推荐指数
1
解决办法
1万
查看次数

解码莫尔斯没有白色空格到文本

如果代码采用以下格式(没有任何空格),是否有可能将莫尔斯代码解码为文本:

-.-..--.....-...--..----.
Run Code Online (Sandbox Code Playgroud)

通常它看起来像那样,

- .-. .- -. ... .-.. .- - .. --- -.
t  r  a  n   s   l   a  t  i  o  n 
Run Code Online (Sandbox Code Playgroud)

但是有可能从没有空格的摩尔斯电码获得相同的文本吗?

c# morse-code

4
推荐指数
1
解决办法
3046
查看次数

c编程scanf

我得到了这个任务,这是我到目前为止所做的代码.这个代码只接受一个字母,它应该比字母更多,所以我可以输入一个单词,它将是莫尔斯电码

#include "stdafx.h"
#include <ctype.h> 
#include <stdlib.h>
#include <string.h>

int _tmain(int argc, _TCHAR* argv[])
{
  char input[80], str1[100];

  fflush(stdin);
  printf("Enter a phrase to be translated:\n");
  scanf("%c", &input);
  int j = 0;
  for (int i = 0; i <= strlen(input); i++)
    {
      str1[j] = '\0';
      switch(toupper(input[i]))
        {
          ..................
        }
      j++;
    }
  printf("\nMorse is \n %s\n", str1);
  fflush(stdout);
  //printf("%s\n ",morse);
  free(morse);
}
Run Code Online (Sandbox Code Playgroud)

c morse-code

2
推荐指数
1
解决办法
909
查看次数

js解码莫尔斯电码

对于这个项目,我试图解码给定的摩尔斯电码字符串。编码字符由一个空格分隔,单词由三个空格分隔。我很难通过单词空格。我不断收到“wordundefinedword”。

decodeMorse = function(morseCode) {
    outPut = "";

    for (var i = 0; i < morseCode.split(" ").length; i++) {
        if (i === "   ") {
            outPut += " ";
        } else {
            outPut += MORSE_CODE[morseCode.split(" ")[i]];
        }

    }
    return outPut;
}
Run Code Online (Sandbox Code Playgroud)

例子: ””.... 。-.--" "-- .- -."" -> "HEY MAN" 对不起,奇怪的引号。如果没有外部空间,它就不会显示空间。

javascript morse-code

2
推荐指数
2
解决办法
2万
查看次数

使用以问号作为通配符的输入查找潜在的莫尔斯电码字符串匹配

我有一个函数可以检查字符串(参数)是否与数组中的值匹配并返回可能性键的数组

function find_possible_match( $criteria ) {

  $possible_match = array();


      $possibilities = array(
"a"=>".-",
"b"=>"-...", 
"c"=>"-.-.", 
"d"=>"-..", 
"e"=>".", 
"f"=>"..-.", 
"g"=>"--.", 
"h"=>"....", 
"i"=>"..", 
"j"=>".---", 
"k"=>"-.-", 
"l"=>".-..", 
"m"=>"--", 
"n"=>"-.", 
"o"=>"---", 
"p"=>".--.", 
"q"=>"--.-", 
"r"=>".-.", 
"s"=>"...", 
"t"=>"-", 
"u"=>"..-", 
"v"=>"...-", 
"w"=>".--", 
"x"=>"-..-", 
"y"=>"-.--", 
"z"=>"--..", 
"0"=>"-----",
"1"=>".----", 
"2"=>"..---", 
"3"=>"...--", 
"4"=>"....-", 
"5"=>".....", 
"6"=>"-....", 
"7"=>"--...", 
"8"=>"---..", 
"9"=>"----.",
"."=>".-.-.-",
","=>"--..--",
"?"=>"..--..",
"/"=>"-..-.",
" "=>" ");


  foreach ( $possibilities as $key => $value ) {

         if( $value == $criteria ){
            array_push(  $possible_match , $key );
        }
  }

  return $possible_match;
} 
Run Code Online (Sandbox Code Playgroud)

这是非常标准的,是所有字符串的标准 …

php regex morse-code preg-match

2
推荐指数
1
解决办法
469
查看次数