注意:我这里是新建的空项目运行的 js 文件,直接使用 node 运行 … 需在 js 文件的同级创建好对应的存储数据目录啊
由于不涉及什么请求,分析啊之类的,也不需要安装其它插件,直接用就行
const fs = require('fs')
const path = require('path')
let filePath = path.resolve('data/results.json') // 如果直接运行,需在同级目录创建 data 目录,可自行修改
let reds = [1, 3, 5, 7, 9, 10, 12, 13, 15]
let blues = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
let num = 0
let tmpResult = []
let result = {}
// reds 中 6*6 组合 求一共有多少中组合,使用程序实现
let redsLen = reds.length
for (let r1 = 0; r1 < redsLen; r1++) { // 第一个数字
for (let r2 = 1; r2 < redsLen; r2++) { // 第二个数字
for (let r3 = 2; r3 < redsLen; r3++) { // 第三个数字
for (let r4 = 3; r4 < redsLen; r4++) { // 第四个数字
for (let r5 = 4; r5 < redsLen; r5++) { // 第五个数字
for (let r6 = 5; r6 < redsLen; r6++) { // 第六个数字
if (r1 < r2 && r1 < r3 && r1 < r4 && r1 < r5 && r1 < r6 && r2 < r3 && r2 < r4 && r2 < r5 && r2 < r6 && r3 < r4 && r3 < r5 && r3 < r6 && r4 < r5 && r4 < r6 && r5 < r6 && r1 != r2 && r1 != r3 && r1 != r4 && r1 != r5 && r1 != r6 && r2 != r3 && r2 != r4 && r2 != r5 && r2 != r6 && r3 != r4 && r3 != r5 && r3 != r6 && r4 != r5 && r4 != r6 && r5 != r6) { //判断每个数从左到右,依小到大排列并且每个数不重复
let tmpArr = [r1, r2, r3, r4, r5, r6]
tmpResult.push(tmpArr)
// num++ // 不加蓝球的话,红球 6 6 组合有多少种
}
}
}
}
}
}
}
blues.forEach(blue => {
tmpResult.forEach(res => {
let tmpReds = res.map(el => {
return fillZero(reds[el])
}).sort((a, b) => a - b)
.join(',')
num++ // 加上蓝球, 6 6 组合共有多少种
result[String(num)] = tmpReds + ' - ' + fillZero(blue)
})
})
function fillZero(num) {
if (num < 10) {
return '0' + num
} else {
return String(num)
}
}
console.log('一共有:' + num + ' 种结果')
fs.writeFileSync(filePath, JSON.stringify(result, null, '\t'))
可以放 package.json 的 scripts 里边运行:
"scripts": {
"res": "node ./src/factorial.js"
}
也可以直接运行:
生成的结果: