问题标签 [morse-code]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1054 浏览

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

我 8 岁的侄女昨天在学校上了一堂摩尔斯电码课,她的任务是将各种短语转换为摩尔斯电码。其中一个短语包括她的年龄,而不是写作---..,她写作3-2.是因为(用她的话),“这样写的少。” 这个初级的“压缩算法”激发了我的好奇心,所以我写了一点代码来实现它。

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

由于我们中的一些人确实使用+,并且我们都使用连字符和句点/点,这会与我们对摩尔斯电码的标准定义相冲突,因此这些符号分别替换为phd。当然,这给我们带来了如何处理未在我们的扩展摩尔斯电码中定义的符号的问题。我的侄女想简单地忽略它们,所以我们就这么做了。为了文本信息的大小写敏感,代码中的大写字母不小写;它们只是按原样进行并用+.

算法总结:

  1. 莫尔斯电码右填充为 5 个字符+
  2. 我们扩展了摩尔斯电码来代替、pfor和for 。+d.h-
  3. 未在我们的“扩展”摩尔斯电码中定义的符号将完整地传递。
  4. 除非仅出现一个连续字符,否则将替换连续的符号,在这种情况下省略该数字。

潜在的陷阱:

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

例子:

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

并压缩到

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

有哪些简单的方法可以 a) 改进我们的算法,并且 b) 相对容易向我 8 岁的侄女解释?虽然最后一点显然是主观的,但我还是尽量满足她的好奇心。

我也欢迎对代码进行任何改进,因为它的结构不太好(我相当肯定它的结构很差,实际上,但它又快又脏),尽管这完全是为了我的利益,因为我还没有让我的侄女使用 Python (YET)。

更新

这是代码的更新版本,它试图结合 user1884905 对算法的修改和 Karl 对代码本身的改进。

0 投票
1 回答
536 浏览

c - 使用莫尔斯电码读取 .txt 文件并从树中查找字母?

' 我需要能够创建一个字母树。'.'然后用,'-'和.打开一个示例 .txt 文件'/' '//''.'转到树的左侧,或者在这种情况下是 rist 字母。'-'向右破折号。 http://www.skaut.ee/?jutt=10201 - 树长什么样。'

问题从最后一个循环开始。字母树已创建,但我无法从树中搜索字母。

0 投票
1 回答
604 浏览

java - 使用静态的摩尔斯电码

我有这个程序,但我有一些问题:这是我进行计算的地方。

主要方法:

所以我的程序是当我输入一个输入时,即使在我进行了将其转换为摩尔斯电码的计算的主要方法中,输出也显示为黑色。还有关于我是否可以在我的任何方法中使用静态标识符的任何建议。

这是文本文件:

0 投票
2 回答
4019 浏览

java - 莫尔斯电码转英文?

我正在尝试编写将英语翻译成摩尔斯电码的东西,反之亦然。我让英语到莫尔斯语运行良好,但我很难以另一种方式转换它。我的意思是|用作单词之间的空格,所以- --- | -... .意思是“成为”。谁能告诉我我的代码部分有什么问题case:1

0 投票
1 回答
7651 浏览

c - 用C编程取一个词组,改成莫尔斯电码

我正在编写一个程序来获取用户输入并将其转换为摩尔斯电码作为输出。我的程序中出现了一些错误。我不确定我应该做什么或从这里尝试。我已经完成了从字母表到莫尔斯电码的转换。我从使用字母切换到二进制输入,因为它不喜欢字母。

我试图扫描短语并使用字符串将其存储在其中。然后使用 for 循环将 string[i] 每个循环增加 1,以便检查字符串的每个地址。每次循环运行时,它将字符串值存储在 INT A 中,然后检查 if= else - if 语句是否匹配并返回并打印该值。

0 投票
1 回答
2665 浏览

python - Python——通过二叉树进行摩尔斯电码翻译

我正在编写一个程序,它将创建一个摩尔斯电码字母表(以及一个句号和一个撇号)的二叉树,然后它将读取一行摩尔斯电码并将其翻译成英文。(是的,我知道查找表会更容易,但我需要整理我的二叉树)。我认为我的一个很好的问题是我想按字母顺序将值放入树中,而不是按符号顺序。但肯定有办法做到这一点吗?因为如果我有一百万个这样的非数字值,我就不需要将它们排序为最简单的插入顺序......对吗?

它从一个文本文件中读取,其中每一行都有一个摩尔斯电码句子。- .... .. ... .. ... ..-. ..- -. .-.-.- 例如,“这很有趣”。符号之间的 1 个空格表示它是一个新字母,2 个空格表示它是一个新单词。

就目前而言,我得到了上面给出的那一行的输出“.$$$”,这意味着它正在读取一个句点,然后得到一个由 ('$$$') 表示的错误,这显然是错误的。 ..

就像我之前说的,我知道我很复杂,但是肯定有一种方法可以做到这一点,而无需先对树中的值进行排序,我现在想弄清楚这一点,而不是在某个时间紧缩。

有没有人有任何见解?这是不是太明显了,以至于我问起来会很尴尬?

0 投票
5 回答
3416 浏览

python - 在莫尔斯电码转换器中允许多个字符

我正在制作一个程序,它接受输入并将其转换为计算机哔哔声形式的莫尔斯电码,但我不知道如何制作它,所以我可以在输入中输入多个字母而不会出错。

这是我的代码:

现在一次只需要一个字母,但我希望它带短语。

0 投票
2 回答
2563 浏览

while-loop - 优雅地循环 Arduino LED 中的消息 SOS 闪烁

我正试图让我的 Arduino 在摩尔斯电码中闪烁“SOS”作为我的第一个真正的编程项目。

我已经成功地做到了,但是现在我想更有效地编写代码。这是我的版本。如何实现 while 循环以使 S 闪烁两次?这似乎使使用计数器跟踪迭代变得复杂。

0 投票
1 回答
2093 浏览

python - sudo python3.2 setup.py:没有提供命令

我想通过以下链接在 ubuntu12.4 中安装 MORSE:

http://www.kevindemarco.com/tutorials/morse-ros-installation/

但在 stap8 中,当我在终端中运行“sudo python3.2 setup.py install”时出现此错误:

我通过以下方式解决了它: sudo apt-get install python-rospkg

但它在python2.7上安装了rospkg。如果我使用“sudo python setup.py install”没有问题。但是当我使用 python3.2 尝试时,在http://www.kevindemarco.com/tutorials/morse-ros-installation/中出现“ImportError:没有名为 setuptools 的模块”我需要 python3.2

无论如何分发都无法解决我的问题。

请帮帮我!

0 投票
1 回答
190 浏览

c - strcmp 与字符串和数组混淆

我有这个代码试图将莫尔斯电码翻译成字母:

我遇到的问题是 strcmp(morseLetter,morse[i])

当我运行 gdb 时,我得到了这个:

if (strcmp(morseLetter,morse[i]) == 0) {

(gdb) 显示莫尔斯字母

1: 莫尔斯字母 = 0x7ffffffffe4d0 "...."

(gdb) 显示莫尔斯[i]

2: 莫尔斯[i] = "·–\000\000\000\000\000\000\000\000\000"

因此,当它到达正确的莫尔斯字符串时,它显示为“····\000\000\000\000\000\000”,因此比较失败。我没有遵循这里的逻辑。我认为 C 中的字符串将是一个带有 \0 的数组。为什么会失败?

谢谢