您的位置:首页 > 其它

[原创]【动态规划求解“键盘上字母分配”问题】

2007-04-01 01:07 381 查看
[align=center]动态规划求解“键盘上字母分配”问题[/align]

一、问题背景
[align=left] 随着手机的普及,手机短信的交流方式也越来越流行(注:此处的短信主要指的是英文短信)。如下图1,就是标准手机键盘上用来打出26个字母(a~z)的按键布局。由于每个键上有多个字母,我们打字时常会遇到的情况是,某些常用字母可能需要按几下键才能打出来。比如字母“s”,需要按四次键才能选中。如果我们把字母按照图2的方式分配到各个按键上,那么打字就会方便一些,因为只要按两次键就可以选中“s”,虽然打出p、q需要的按键次数增加了,但是在英文中p、q的出现的频率比“s”小的多,于是这样做总的来说是值得的。[/align]
[align=left] [/align]

[align=center]1
[/align]
[align=center]2
abc[/align]
[align=center]3
def[/align]
[align=center]4
ghi[/align]
[align=center]5
jkl[/align]
[align=center]6
mno[/align]
[align=center]7
pqrs[/align]
[align=center]8
tuv[/align]
[align=center]9
wxyz[/align]
[align=center]*
[/align]
[align=center]0
space[/align]
[align=center]#
[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=center]1
[/align]
[align=center]2
abcd[/align]
[align=center]3
efg[/align]
[align=center]4
hijk[/align]
[align=center]5
lm[/align]
[align=center]6
nopq[/align]
[align=center]7
rs[/align]
[align=center]8
tuv[/align]
[align=center]9
wxyz[/align]
[align=center]*
[/align]
[align=center]0
space[/align]
[align=center]#
[/align]
[align=left] 图1 图2[/align]
[align=left] [/align]
二、问题描述
[align=left]类似地,现有L个按序排列的字母(广义,可包含其它字符,且第i个字母具有下标i,1 <= i <= L),K个按序排列的按键,(1 <= K <= L),以及每个字母使用的频率Fi 。将这L个字母依次分配到这K个键上,字母顺序固定不变,且每个键上至少分配一个字母,问怎样分配能使得在通常情况下打字的总代价最小?设Pi表示第i个字母在其所在按键上处于第Pi个位置(Pi >= 1,比如图1中“s”在按键7上的位置为4),则可以定义第i个字母的代价为:[/align]
[align=center]Pricei=Fi * Pi。[/align]
[align=left][/align]
三、问题分析与算法设计

[align=left]详见以下word文档:[/align]
[align=center]http://download1.csdn.net/down3/20070519/19140346679.doc[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: