C-将名字转换成岁数,算法实现?

C-将名字转换成岁数,算法实现?

灵芸 发布于 2016-11-11 字数 360 浏览 1286 回复 6

有一个输入框,用户输入姓名,如“张三”,会显示出一个根据算法计算出来岁数,比如25
要求:
不能第一次输入“张三”的时候 显示35岁。
第二次输入“张三”的时候 显示 50 岁。
想将名字转换成正常岁数。岁数是 1~100之间。
20~60 的占概率的 80%

有什么比较好的算法?大家可以说说用数据库和不用数据库的方法。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

灵芸 2017-10-11 6 楼

将汉字的unicode按照第奇数倒序, 第偶数个顺序, 然后取异或的结果, 这样的结果应该可以视作平均分布. 然后按照自己设定的概率映射到年龄区间, 感觉这样的随机性和可玩性比较大, 不会让人轻易发现规律.

偏爱自由 2017-07-17 5 楼

1,搜集所有的姓氏。每个姓对于一个分数值,在姓氏上做概率的处理;
如:

张 => 60
王 => 70
冯 => 80

2 利用汉字笔画数库,将 名 的笔画进行求和。

比如 姓名 冯义军 : 80 + 3 + 6 = 89

如果最终算出来的值大于 100 那么按照 100 处理,或者其他处理。

不知道这样可行不。。

清晨说ぺ晚安 2017-07-12 4 楼

把输入字符串的unicode码哈希,乘于一个大于100的素数再用100取余。

夜无邪 2017-06-20 3 楼

既然是娱乐用的可以把名字md5一下,然后变成byte固定取某几位的值呀,再加些判断就能达到效果

夜无邪 2017-05-23 2 楼

将名字转换成整数不难,问题在于概率的设定,这个稍微麻烦一点点。
如果采用数据库还是比较简单的,将人名和年龄存储起来,就可以保证同名年龄的一致性,并在数据库中存储一个概率值,每一次新的查询,结合已有的概率值产生一个年龄值,并存入数据库,再更新保存的概率。
如果不采用数据库,就需要将名字做HASH来生成年龄值,若要保证概率范围,我的思路是首先从网上搜寻有人统计的汉字中姓、名出现频率,生成一张简单的映射表,做HASH时根据映射表来产生年龄。

甜柠檬 2017-05-21 1 楼

这个本身就是不合理的吧
也就是娱乐的程序会用到

我建议采用每个字的拼音的asc码来叠加得到的值在进行比率处理,这样应该简单合理些!