需求是这样的:
用户输入一个自己的姓名,根据姓名输出一个算命结果,提前准备了若干条固定的算命结果,输入名字提交后随机选择一条作为结果,但是需要相同的姓名得到的结果是相同的。
有什么比较合理的方式实现以上需求?我目前的实现方式是根据用户输入的名字字符串,Java获取字符串CRC32结果,long类型,然后除以算命结果的条数取余数,根据余数获取对应的结果。想问有没有更好的实现方式?
需求是这样的:
用户输入一个自己的姓名,根据姓名输出一个算命结果,提前准备了若干条固定的算命结果,输入名字提交后随机选择一条作为结果,但是需要相同的姓名得到的结果是相同的。
有什么比较合理的方式实现以上需求?我目前的实现方式是根据用户输入的名字字符串,Java获取字符串CRC32结果,long类型,然后除以算命结果的条数取余数,根据余数获取对应的结果。想问有没有更好的实现方式?
function nameFate(str){
var temp="";
var nameNum; //对应结果编号
var cardNum=10; //结果数量
for(var i=0;i<str.length;i++)
temp+=str.charCodeAt(i).toString();
nameNum=parseInt(temp)%cardNum;
return nameNum;
}
将名字转化为unicode编号然后转化为数字,然后对结果数目取余
1 回答3.3k 阅读✓ 已解决
1 回答2.8k 阅读
2.5k 阅读
1 回答523 阅读✓ 已解决
1 回答1.1k 阅读
1 回答480 阅读✓ 已解决
对姓名取 md5,得到一个16进制的数,然后除以算命结果的条数取余数,这样就可以把输入映射到结果上了。