九宫格的计算公式挺好玩的,以三个为一组不知是不是它的通用的公式?

输入描述:三行三列的字符元素,代表棋盘状态,字符元素用空格分开,代表当前棋盘,其中元素为K代表KiKi玩家的棋 子,为O表示没有棋子,为B代表BoBo玩家的棋子。输出描述:如果KiKi获胜,输出“KiKi wins!”; 如果BoBo获胜,输出“BoBo wins!”; 如果没有获胜,输出“No winner!”。具体代码:#include <stdio.h>
int main()
{
char arr[3][3] = {0};
int i = 0;
int j = 0;
char flag = 'c';
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
{
scanf("%c", &arr[i][j]);
getchar();
}
}
for(i=0; i<3; i++)
{
if(arr[i][0]==arr[i][1] &&arr[i][1]==arr[i][2])
{
flag = arr[i][1];
break;
}
if(arr[0][i]==arr[1][i] &&arr[1][i]==arr[2][i])
{
flag = arr[1][i];
break;
}
}
if(arr[0][0]==arr[1][1] &&arr[1][1]==arr[2][2])
{
flag = arr[1][1];
}
if(arr[0][2]==arr[1][1] &&arr[1][1]==arr[2][0])
{
flag = arr[1][1];
}
if(flag == 'K')
printf("KiKi wins!");
else if(flag == 'B')
printf("BoBo wins!");
else
printf("No winner!");
return 0;
}
「拼音 9 键」显然是按照「英文 9 键」依样画葫芦的。这的确有历史原因,因为早期的电话键盘不含有使用频率最低的字母 Q 和 Z,这样每个数字恰好对应 3 个字母,而加上 Q 和 Z 后,这两个字母对应的 7 和 9 上就有 4 个字母了。但不得不说,从每个英文字母使用的频率上来看,目前的英文九宫格是一个非常糟糕的设计。Algoritmy 网站(Letter frequency (English))给出了英语中 26 个字母使用的频率,如下:除此之外,它还给出了频率最高的 2 字母和 3 字母组合:2 字母:th, er, on, an, re, he, in, ed, nd, ha, at, en, es, of, or, nt, ea, ti, to, it, st, io, le, is, ou, ar, as, de,rt, ve3 字母:the, and, tha, ent, ion, tio, for, nde, has, nce, edt, tis, oft, sth, men考虑到数字 1 上是不包含英文字母的,实际上就是数字 2~9 成了英文字母,因此,从频率上来讲,每个按钮的使用频率是 12.5% 才更合理一些。按照这个频率分布,目前各数字的使用频率是:数字 3 使用的频率高达 19.18 %,而数字 9 仅有 4.56 %,还不到数字 3 的四分之一,而数字 5 作为中间一个数,使用的频率还不足 5%,太不合理了! 按照这个频率分布,更合理的排列方式应该是这样:这样的话,各数字的使用频率变成了:虽然最高 16.69%、最低 8.29% 还是差了一倍,但比起上面的方案,是不是合理多啦?当然了,并没有人规定,所有的英文字母必须要按照顺序排列(电脑键盘不就打乱了次序嘛),实际上,我们可以微调一下字母的顺序,让各数字的使用频率更加合理:这样的话,各数字的使用频率变成了:一片黄色,非常和谐。当然,以上只考虑英语的输入情况,对于汉字输入来说,情况会有所不同,参照 这篇 文章(此文最初的来源是 @GOUKI 的 在以拼音为汉字输入方式时,各字母的使用频率是怎样的? - GOUKI 的回答 - 知乎),他给出了汉字输入中各个字母的使用情况:按照这个分布,汉语拼音中各数字的使用频率是这样的:这比英文输入更不合理了!幸好现在是触摸屏,如果是以前的按钮,数字 4 肯定是最早坏的!于是同样地,我们可以将字母顺序微调一下,把键盘变成这样:各数字的使用频率就变成了:看起来和谐多了!而且用的最多的数字 4、5、6都在中间,挺合理的。更重要的是,这种分法把 h 和 i、n 和 o 都分开了,使得重码率大大减低:例如:原来:xian、xiao、zhan、zhao 都是 9426;现在:xian、xiao、zhan、zhao 分别变成了 9526、9527、9426、9427 何乐而不为呢?^_^#1、拼音 9 键继承的是英文手机键盘 9 键;2、pqrs 组里字母 q 出现的频率较低(更何况经常要以 qu 的形式呈现),而 wxyz 中仅 w 和 y 出现的频率相对高一点;3、这种设计并不合理,在汉语拼音中,x、y、z 这三个字母出现频率反而比较高。

我要回帖

更多关于 九宫格的计算公式 的文章

 

随机推荐