Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从JavaScript中的字符串生成随机数_Javascript_Random_Ab Testing - Fatal编程技术网

从JavaScript中的字符串生成随机数

从JavaScript中的字符串生成随机数,javascript,random,ab-testing,Javascript,Random,Ab Testing,我想制作一个客户端a/B测试库 每个用户都有一个随机数存储在cookie中。每个测试都有一个测试名称和一个选项数组。我需要一个函数,根据用户的随机数、测试名称和选项选择一个随机选项。当然,对于给定的输入集,函数必须始终返回相同的选项 如何用JavaScript编写此函数?我当前的解决方案使用哈希函数生成一个随机数: // seed is the user's random number choose_option = function(seed, test_name, options) {

我想制作一个客户端a/B测试库

每个用户都有一个随机数存储在cookie中。每个测试都有一个测试名称和一个选项数组。我需要一个函数,根据用户的随机数、测试名称和选项选择一个随机选项。当然,对于给定的输入集,函数必须始终返回相同的选项


如何用JavaScript编写此函数?

我当前的解决方案使用哈希函数生成一个随机数:

// seed is the user's random number

choose_option = function(seed, test_name, options) {
  word = CryptoJS.MD5("" + seed + test_name).words[0]; // take first 32-bit word
  i = Math.abs(word % options.length);
  return options[i];
}
var availNum=[1,4,5,6,7,8,12];
//@var count所需的随机数的数目
函数createRandomData(计数){
var数据=[],
对于(变量i=0;i
可能会晚一点,也可能会有点夸张,因为所讨论的库有许多您可能不会使用的功能,但我的项目中始终包含这些功能,所以让我将我的解决方案与您遇到的问题完全相同。此库可以使用seed()初始化,这对于创建可重复的结果非常有用:

const Chance = require('chance');
c1 = Chance('email@gmail.com', 'maybe a uuid here');
c1.integer();
c1.natural({min:1000,max:9999});

c2 = Chance('foo-baz-bar');
c2.string();
c2.word();
...

希望这能有所帮助。

考虑到您的需求,这听起来很完美-您对这项技术有什么特别的反对意见,或者您只是好奇是否还有其他东西?@Bubbles我希望有更简单的东西,不需要依赖外部库。我还担心我在测试之间引入了一些统计偏差或依赖性。也可能生成特定范围内的数字。请看这里:为什么要用字符串表示数字?对不起,我已经更改了@Brad
const Chance = require('chance');
c1 = Chance('email@gmail.com', 'maybe a uuid here');
c1.integer();
c1.natural({min:1000,max:9999});

c2 = Chance('foo-baz-bar');
c2.string();
c2.word();
...