对于礼物,我试图创建一个代码,该代码向前读取一个单词,向后反向一个不同的单词.一个例子(0,1,2是可用的符号):
D = 02,E = 01,H = 201,L = 1,O = 211,R = 10,W = 11
然后是"HELLO"/"WORLD"对
2010111211 HELLO
1121110102 WORLD
我想生成一个适合其他单词对的代码.显然,我不能强迫解决方案(如果存在该解决方案).我所知道的所有优化/搜索方法(模拟退火,爬山,遗传算法)只给出了不完美的解决方案,如果单词对很长的话.
上面的例子是在我为解决这个问题而编写的遗传算法中找到的,但是经过多代不同的参数和字序等,它从未达到100%.
我怎么能以不同的方式处理?每个码字的长度不是很重要,每个字符应少于10个符号,所使用的不同符号的数量应保持在5以下,并且代码不需要是无前缀的.
编辑:在评论之后,这是我实际上要做的事情:基本上,我想要一条带有不同形状珠子(每个符号)的项链,这些珠子可以编码一个单词,如果你扭曲它,那么它会编码一个不同的单词.因此,码字不应该太长,并且不能有太多不同的符号.
编辑2:前锋,它应该读FESTUNG DRESDEN(或FESTUNGDRESDEN),倒退一些通用的"美好愿望"的组合,即朋友,财富,幸运,幸福(或德语相当于这些单词)或只是名称MARIA(是的,你猜对了,这对一个女孩来说......).没关系,如果这些单词形成对(即FESTUNG向后读到"财富",DRESDEN向后读到FRIENDS)或者它是长版本(即FESTUNGDRESDEN向后读到FRIENDS&FORTUNE).
提前致谢!
我是计算机科学专业的学生,在计算机程序运行的过程中学到了很多关于"幕后"的基本概念.但最近我意识到我不明白软件事件如何有效地工作.
在硬件中,这很容易:代替处理器"忙着等待"以查看是否发生了某些事情,组件发送中断请求.
但是,这是如何工作的,例如,鼠标悬停事件?我的猜测是:如果鼠标发送信号("移动"),操作系统计算其新的位置p,然后检查什么程序正在在屏幕上绘制,告诉程序位置P,则程序本身检查什么object位于p,检查是否有任何事件处理程序与所述对象关联并最终触发它们.
这对我来说听起来非常低效,因为微小的鼠标移动等同于许多cpu上下文切换(我学到的相对昂贵).然后有许多后台应用程序也可能想要自己做一些事情.
我的直觉在哪里失败了?我意识到即使是"慢速"的500MHz处理器每秒也能完成5亿次操作,但对于这样一个简单的事件来说,它似乎仍然有太大的作用.
提前致谢!