【问题标题】:Textual input to seeded random种子随机的文本输入
【发布时间】:2012-09-27 18:10:01
【问题描述】:

我如何从用户那里获取文本输入(他们的键盘允许他们输入的任何内容),并将其转换为数字?

我可能会从那里获取该数字,并将其输入到种子随机数生成器中。

我从 Minecraft 的随机种子选项中得到了这个想法,但我在上面找不到任何东西。

【问题讨论】:

  • 我不确定如何在 javascript 中执行此操作,但在与键盘交互时,您将获得键码。这些将是整数。还有其他更随机的东西,例如击键和鼠标移动之间的时间间隔。

标签: javascript random theory seeding


【解决方案1】:

可能有更有趣的算法,但这只是将字符转换为整数并将其乘以位置以加权它们(因此'abc'与'cba'不同)。您也可以使用某种散列函数,但我认为这可能是矫枉过正。 ​

var input = 'askljfhasjfh', num = 0;

for (var i = 0, len = input.length; i < len; ++i) {
  num += input.charCodeAt(i) * (i + 1);
}

console.log(num);

但请记住,您不能在 Javascript 中为 Math.random() 函数播种,它始终只使用当前日期作为种子。

【讨论】:

  • *i 部分是干什么用的?您将忽略第一个字符。您是否正在尝试执行 *Math.pow(2,3*i) 之类的操作?
  • 我并不想那么花哨,尽管那样也行。只是想给角色增加一个基本的权重。我在上面修复了它,这样我就不会跳过第一个字符。
  • 你刚刚让我意识到我是多么容易忽视那个方法o.o
猜你喜欢
  • 1970-01-01
  • 2014-12-03
  • 2013-03-26
  • 2021-07-28
  • 2016-08-12
  • 2016-10-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多