- 1 function gailv(num) {
- 2
- 3
- 4 $(".slider_num").text(0);
- 5 $(".slider_num_input").val(0);
- 6
- 7 var gls = [0, 0, 0, 0, 0, 0, 0, 0.02, 0.03, 0.04, 0.04, 0.04, 0.04, 0.07, 0.09, 0.10, 0.09, 0.06, 0.08, 0.10, 0.09, 0.06, 0.02, 0.01], //概率
- 8 sliders = [],
- 9 multi = 0,
- 10 remainder = 0,
- 11 takeRemainder = 0,
- 12 slis = null,
- 13 lineSize = 200, //单行最大任务数
- 14 nTaskNum = lineSize * 17,
- 15 lineTote = lineSize * gls.length; //任务总数
- 16
- 17
- 18 if (num > lineTote) {
- 19 layer.alert('任务总数最大为' + lineTote);
- 20 num = lineTote;
- 21 }
- 22
- 23 //获取与dom相对应的数组
- 24 for (var a = 0; a < gls.length; a++) {
- 25 sliders.push(0);
- 26 }
- 27
- 28 //随机分配任务
- 29 for (var i = num; i > 0; i--) {
- 30
- 31 slis = random(sliders, gls);
- 32
- 33 if (sliders[slis] >= lineSize) {
- 34 for (var j = 7; j < sliders.length ; j++) {
- 35 if (sliders[j] < lineSize) {
- 36 sliders[j]++;
- 37 break;
- 38 }
- 39 }
- 40 sliders[slis] = lineSize;
- 41 }
- 42 else {
- 43 sliders[slis] += 1
- 44 }
- 45
- 46 }
- 47
- 48 //获取多余任务数
- 49 if (num > nTaskNum) {
- 50 multi = num - nTaskNum;
- 51 }
- 52
- 53 //分配多余任务数
- 54 if (multi > 0) {
- 55 remainder = parseInt(multi / 7);
- 56 takeRemainder = multi % 7;
- 57
- 58 $.each(sliders, function (index, item) {
- 59 if (index <= 6) {
- 60 sliders[index] = remainder;
- 61 }
- 62 })
- 63 if (takeRemainder > 0) {
- 64 for (var l = 0; l < takeRemainder; l++){
- 65 sliders[l]++;
- 66 }
- 67 }
- 68 }
- 69
- 70 //渲染dom
- 71 for (var n = 0; n < sliders.length; n++) {
- 72 $("#eq .slider_con").eq(n).find(".slider_num").text(sliders[n]);
- 73 }
- 74
- 75 $.each(sliders, function (index, item) {
- 76 try {
- 77 $("#eq .slider_con").eq(index).find(".slider_num_input").val(item);
- 78 $("#eq .slider_con").eq(index).find("span").slider("value", item);
- 79 } catch (e) {
- 80 }
- 81 });
- 82 }
- 83
- 84 function random(arr1, arr2) {
- 85 var sum = 0,
- 86 factor = 0,
- 87 random = Math.random();
- 88
- 89 for (var i = arr2.length - 1; i >= 0; i--) {
- 90 sum += arr2[i]; // 统计概率总和
- 91 };
- 92
- 93 random *= sum; // 生成概率随机数
- 94
- 95 for (var i = arr2.length - 1; i >= 0; i--) {
- 96 factor += arr2[i];
- 97 if (random <= factor)
- 98 return i;
- 99 };
- 100 return null;
- 101 };