// 计算数组的中位数
function median(arr) {
const mid = Math.floor(arr.length / 2);
const sorted = arr.slice().sort((a, b) => a - b);
return arr.length % 2 !== 0 ? sorted[mid] : (sorted[mid - 1] + sorted[mid]) / 2;
}
const arr = [9142,4211,8193,6487,1,1094,8342,0,5642,6063,9712,6078,1582,9909,5052,3071,621,675,7039,9006,7409,7737,9885,5135,1258,4983,1708,236,5223,5676,2576,3278,208,1241,7159,9765,2084,5527,2963,8405,183,8645,5519,827,2292,7489,3788,5571,3688,6288,3023,9892,1171,5427,1241,7732,4351,4740,2425,5155,782,4310,6969,6400,7934,4114,9139,8018,4433,7620,7456,6615,3666,7708,7434,8525,2834,6891,2258,7266,92,5543,9003,9828,9182,1445,9149,2464,118,2803,7265,2894,2108,1779,4275,4963,2123,694,1968,1379,7847,7072,867,718,4915,3618,3581,6367,4395,8504,691,5671,7250,575,5304,8211,7529,1955,294,4161,9339,4975,8191,390,5304,8828,7201,82,6343,9273,6353,3121,8152,4093,5629,1170,8851,1814,3087,5416,5846,6587,2986,3942,9054,9347,7536,7275,3053,4668,8657,1923,7230,9256,8291,6781,5294,8638,1872,6083,3779,9929,4724,5427,6011,4521,2825,2101,5235,8920,3182,4920,6088,1173,7725,6227,3052,3144,5379,7276,433,7701,2755,1007,2783,177,4523,4621,7652,6324,6429,8339,333,3670,1915,3750,4188,6076,6075,5151,6975,1865,1107,6657,8809,1111,6881,1890,684,4798,4595,8463,7112,7760,5676,208,3445,6813,3241,9651,7172,9227,2305,6036,1223,9773,8812,1759,829,9147,9003,9535,9642,6204,4980,8163,4831,1993,774,5051,7297,7612,4904,977,791,3385,4007,3009,1788,9356,9914,9802,1229,7581,5772,4388,9713,1440,5869,7359,1244,4208,7861,673,7239,6721,8194,9508,5636,1220,7197,4747,4636,6327,7660,8129,602,865,1024,7495,3071,1560,8826,7206,8434,33,6641,5697,792,9809,2499,8663,6930,4339,6092,5671,8337,3599,2726,5719,8307,3796,6568,2362,6597,4924,2992,8294,3109,9489,5535,612,3058,6265,3343,2102,4338,8522,6934,1185,5475,564,1335,8004,2508,8645,129,8038,6826,5938,4604,8887,2575,3133,861,5623,6113,1545,1457,4767,4022,9119,186,1362,2193,1272,8471,9250,4488,6629,8166,1444,3786,5688,9998,858,1948,6456,1620,560,279,9694,4000,5726,6191,7817,2051,7728,1915,5549,1941,6611,9120,5187,7084,138,7618,176,732,596,9402,7160,1898,1014,2214,6502,2887,9620,272,6266,5429,3475,5258,5492,2140,7440,2568,5843,9896,4665,3578,9942,5559,6319,5157,8043,2383,8681,1412,2131,9268,4837,3975,1339,7059,1624,2076,7244,8662,9372,1329,2853,287,505,8798,7705,6193,9807,4562,5400,7495,3183,4271,116,3033,4126,3486,2628,396,6725,1875,4505,789,93,303,9664,7774,719,6686,2867,3385,6813,6160,7895,5954,4487,8713,4652,6427,104,165,7398,9767,7367,7388,2425,3627,369,9741,1510,617,5556,6127,8322,7593,6201,6108,6068,243,6985,2407,268,9009,8448,1373,2755,4822,8188,7728,7537,126,2998,133,2578,8960,1507,4751,9030,6684,3304,4349,5017,3784,7704,7341,5039,7427,9043,1036,4112,3200,529,7402,7415,1118,1211,3417,9164,7155,94,2135,505,7070,3037,1626,7177,184,2776,6519,7172,3216,8800,7687,8194,6282,2916,5395,5553,5814,4058,3097,9541,6328,5566,6484,5700,7814,6612,8604,6848,8694,7653,8231,8270,7840,2678,7859,2429,7339,988,5070,7914,2186,8174,1413,7867,1037,9831,7368,8024,2774,3776,4966,714,6533,5352,8016,2187,3038,1730,7831,8449,4989,7701,4418,3209,7301,7595,8375,8512,4113,9699,9365,9248,4762,1055,4238,4315,9913,4905,9437,6183,5678,2504,2011,5288,6538,162,5521,5289,3016,3014,2585,7417,3584,9791,7194,7138,9442,7808,8191,7845,2031,5229,2042,8090,9376,2250,2141,839,4625,7359,6136,2794,3852,454,9465,5078,6987,2210,3336,8941,2777,2208,414,7809,5463,5721,2881,7083,5584,3257,967,1023,9586,7225,7134,1393,1160,6161,1069,16,5007,2842,2898,1221,1958,9063,6966,8842,9556,9561,2468,5918,6854,1291,9010,8889,4463,6269,3080,5985,1982,1814,6387,173,471,7877,591,5232,105,9902,9220,8411,4020,868,505,9712,5417,8376,171,1954,9318,7173,8815,11,6267,3408,9051,7395,3380,393,9294,4408,4081,8520,5435,6054,9175,3696,2599,1552,9628,1540,7470,9823,2446,6130,2056,5670,2948,3808,1323,1600,8195,4174,7417,8711,5973,2905,2338,5547,1377,7414,1121,9776,9421,4304,6476,4293,9359,4112,2768,1329,658,2129,5117,9665,4964,6703,1673,9740,799,8996,2236,3675,332,5413,2017,6816,3835,1790,7724,9484,4971,1632,3893,1112,8159,6298,7567,4358,5133,5298,6438,3277,315,7873,7445,5916,2828,2051,5704,8615,4526,4340,6663,6067,1585,7251,3318,8726,6385,9668,9371,404,4225,5371,1453,5516,3424,1320,5747,7688,8717,9881,9975,3943,5028,7679,7543,3920,2135,4569,6803,393,429,5635,4796,1644,1489,2389,4156,6844,8448,1118,8092,6738,6674,3700,5950,7235,887,3395,3146,8682,2689,5136,5735,3540,8233,9507,6192,3878,3507,7575,5832,1838,6497,9558,8841,7034,9688,9104,2269,62,2139,7886,5918,7094,5176,9974,2102,6344,3819,5517,1509,9098,4148,879,1552,775,1031,2645,5081,8437,2804,1656,8255,1549,5902,619,1002,5457,990,6855,4109,7911,418,1537,6757,5068,9155,4889,2197,3679,752,5337,2134,4477,8657,7952,3931,8474,7874,5539,5755,2905,4634,6662,8669,6955,5140,8642,7597,9743,4298,7751,7321,9625,1235,2471,2465,8474,6217,546,9463,9430,7117,8726,1224,930,2417,516,377,3978,7531,8209,6466,2550,1056,442,1890,6771,7621,7287,5866,7747,9898,2806,3201,4546,1327,1548,6909,4744,7098,2635,8144,1560,769,7198,8536,5203,952,2641,9104,1804,1820,5732,7592,8486,3886,6403,3017,9391,7739,6974,9339,8029,1011,5290,3339,7108,3688,7103,2518,2710,2340,9455];
console.log('中位数', median(arr));
console.log('中位数', d3.median(arr))
console.log("方差", d3.variance(arr));
console.log("标准差", d3.deviation(arr));
function getMode(arr) {
let frequency = {};
let maxFrequency = 0;
let modes = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] in frequency) {
frequency[arr[i]]++;
} else {
frequency[arr[i]] = 1;
}
if (frequency[arr[i]] > maxFrequency) {
maxFrequency = frequency[arr[i]];
}
}
for (let key in frequency) {
if (frequency.hasOwnProperty(key)) {
if (frequency[key] === maxFrequency) {
modes.push(parseInt(key));
}
}
}
return modes;
}
// 字符长度数组
let numarr = arr.map(a=>(a+'').length);
console.log('众数', d3.mode(numarr));
console.log('众数', getMode(numarr));
const my = [1,2,3,4,4,6,7,8,1,3];
console.log('众数', d3.mode(my));
console.log('众数', getMode(my));
const seconds = 100000; // 秒数
const minutes = seconds / 60; // 分钟数
const hours = minutes / 60; // 小时数
const days = hours / 24; // 天数
const weeks = days / 7; // 周数
console.log(seconds, minutes, hours, days, weeks);
function getU(seconds){
if(seconds<100){
return seconds;
}
const minutes = seconds / 60; // 分钟数
if(minutes<100){
return minutes;
}
const hours = minutes / 60; // 小时数
if(hours<100){
return hours;
}
const days = hours / 24; // 天数
if(days<100){
return minutes;
}
const weeks = days / 7; // 周数
return weeks;
}
console