在 Google 表格中,如何随机化一组值的顺序?
In Google Sheets how can I randomize the order of a set of values?
也许我在搜索解决方案时遗漏了一个关键字,但我没有找到我要找的东西。
在 Google 表格中,我想取一组数字并随机重新排序。例如,从集合 [1,2,3,4] 开始并返回 [4,2,1,3]。
有哪些功能或功能组合可以实现此目标的想法?
我想要实现的整个过程是这样的:
我有一组 4 个字段。他们的总和是固定的。我想给它们分配随机值。
所以,我想遍历这个过程:
- 创建一个介于 0 和最大可能值之间的随机整数(在第一次迭代中它是固定和)
- 新的最大值是最后的最大值减去新的随机数。
- 检查新最大值是否为零。
- 如果不是:
- Return 到第一步并重复 - 这一直持续到有四个值
- 如果需要,应增加第 4 个值,以便总数与固定金额相匹配。
- 否则,继续。
- 随机排列 4 个值的顺序。
- 将值分配给 4 个字段。
尝试:
=INDEX(SORT({{1; 2; 3; 4}, RANDARRAY(4, 1)}, 2, ),, 1)
或:
=INDEX(SORT({ROW(1:4), RANDARRAY(4, 1)}, 2, ),, 1)
这里还有几个应用程序脚本示例
function DiceRolls(nNumRolls) {
var anRolls = [];
nNumRolls = DefaultTo(nNumRolls, 1000)
for (var i = 1;i <= nNumRolls; i++) {
anRolls.push(parseInt((Math.random() * 6))+1);
}
return anRolls;
}
function CoinFlips(nNumFlips) {
var anFlips = [];
nNumFlips = DefaultTo(nNumFlips, 1000)
for (var i = 1;i <= nNumFlips; i++) {
anFlips.push(getRndInteger(1,2));
}
return anFlips;
}
function getRndInteger(min, max) {
return Math.floor(Math.random() * (max - min + 1) ) + min;
}
也许我在搜索解决方案时遗漏了一个关键字,但我没有找到我要找的东西。 在 Google 表格中,我想取一组数字并随机重新排序。例如,从集合 [1,2,3,4] 开始并返回 [4,2,1,3]。 有哪些功能或功能组合可以实现此目标的想法?
我想要实现的整个过程是这样的: 我有一组 4 个字段。他们的总和是固定的。我想给它们分配随机值。 所以,我想遍历这个过程:
- 创建一个介于 0 和最大可能值之间的随机整数(在第一次迭代中它是固定和)
- 新的最大值是最后的最大值减去新的随机数。
- 检查新最大值是否为零。
- 如果不是:
- Return 到第一步并重复 - 这一直持续到有四个值
- 如果需要,应增加第 4 个值,以便总数与固定金额相匹配。
- 否则,继续。
- 如果不是:
- 随机排列 4 个值的顺序。
- 将值分配给 4 个字段。
尝试:
=INDEX(SORT({{1; 2; 3; 4}, RANDARRAY(4, 1)}, 2, ),, 1)
或:
=INDEX(SORT({ROW(1:4), RANDARRAY(4, 1)}, 2, ),, 1)
这里还有几个应用程序脚本示例
function DiceRolls(nNumRolls) {
var anRolls = [];
nNumRolls = DefaultTo(nNumRolls, 1000)
for (var i = 1;i <= nNumRolls; i++) {
anRolls.push(parseInt((Math.random() * 6))+1);
}
return anRolls;
}
function CoinFlips(nNumFlips) {
var anFlips = [];
nNumFlips = DefaultTo(nNumFlips, 1000)
for (var i = 1;i <= nNumFlips; i++) {
anFlips.push(getRndInteger(1,2));
}
return anFlips;
}
function getRndInteger(min, max) {
return Math.floor(Math.random() * (max - min + 1) ) + min;
}