如何实现一个算命程序

需求是这样的:
用户输入一个自己的姓名,根据姓名输出一个算命结果,提前准备了若干条固定的算命结果,输入名字提交后随机选择一条作为结果,但是需要相同的姓名得到的结果是相同的。
有什么比较合理的方式实现以上需求?我目前的实现方式是根据用户输入的名字字符串,Java获取字符串CRC32结果,long类型,然后除以算命结果的条数取余数,根据余数获取对应的结果。想问有没有更好的实现方式?

阅读 7.8k
3 个回答

对姓名取 md5,得到一个16进制的数,然后除以算命结果的条数取余数,这样就可以把输入映射到结果上了。

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编号然后转化为数字,然后对结果数目取余

新手上路,请多包涵
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题