8个男生,8个女生,分成4组,每组4人,要求每组男生和女生一样多.结果是一个二维数组.第二次分组以第一次分组为输入,要求第一次在同一组的人不在同一组,男女均等.
这是我写的第一次分组的函数,感觉写得不够简单
var tues=[];
var groupsTues = function () {
var girls = ['月儿', '鱼儿', '玉儿', '雨儿', '少儿', '可儿', '灵儿', '皮儿'];
var boys = ['小张', '小王', '小李', '小赵', '小周', '小吴', '小郑', '小陈'];
8个男生,8个女生,分成4组,每组4人,要求每组男生和女生一样多.结果是一个二维数组.第二次分组以第一次分组为输入,要求第一次在同一组的人不在同一组,男女均等.
这是我写的第一次分组的函数,感觉写得不够简单
var arrIndex = [];
for (var n = 0; n < 8; n++) {
arrIndex[n] = n;
}
for (var i = 0; i < 4; i++) {
tues[i] = [];
var m = Math.floor(Math.random() * (8 - i * 2));
tues[i][0] = boys[m];
tues[i][2] = girls[m];
boys.splice(m, 1);
girls.splice(m, 1);
var n = Math.floor(Math.random() * (8 - i * 2 - 1));
tues[i][1] = boys[n];
tues[i][3] = girls[n];
boys.splice(n, 1);
girls.splice(n, 1);
}
console.log(tues)
return tues;
};
随机分组算法
答案:1 悬赏:60 手机版
解决时间 2021-02-03 17:27
- 提问者网友:焚苦与心
- 2021-02-03 01:34
最佳答案
- 五星知识达人网友:一叶十三刺
- 2021-02-03 01:46
var tues = [];
var groupsTues = function () {
var girls = ['月儿', '鱼儿', '玉儿', '雨儿', '少儿', '可儿', '灵儿', '皮儿'];
var boys = ['小张', '小王', '小李', '小赵', '小周', '小吴', '小郑', '小陈'];
var gps = arguments;
gps.length ? tues = [] : 0;
L: for(var i = 0; i < 4; i++){
var tmp = [];
for(var j = 0;j < 2;j++){
var x = [girls, boys];
for(var k = 0; k < x.length; k++){
var xk = x[k];
var ind = Math.floor(Math.random() * xk.length);
tmp.push(xk.splice(ind, 1).join(""));
}
}
if(!!gps){
var str = tmp.join("");
for(var m = 0; m < gps.length; m++){
if(gps[m].join("") == str){
i--;
continue L;
}
}
}
tues.unshift(tmp);
}
}
groupsTues();
console.info(tues);
groupsTues(tues);
console.warn(tues);
var groupsTues = function () {
var girls = ['月儿', '鱼儿', '玉儿', '雨儿', '少儿', '可儿', '灵儿', '皮儿'];
var boys = ['小张', '小王', '小李', '小赵', '小周', '小吴', '小郑', '小陈'];
var gps = arguments;
gps.length ? tues = [] : 0;
L: for(var i = 0; i < 4; i++){
var tmp = [];
for(var j = 0;j < 2;j++){
var x = [girls, boys];
for(var k = 0; k < x.length; k++){
var xk = x[k];
var ind = Math.floor(Math.random() * xk.length);
tmp.push(xk.splice(ind, 1).join(""));
}
}
if(!!gps){
var str = tmp.join("");
for(var m = 0; m < gps.length; m++){
if(gps[m].join("") == str){
i--;
continue L;
}
}
}
tues.unshift(tmp);
}
}
groupsTues();
console.info(tues);
groupsTues(tues);
console.warn(tues);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯