62 lines
2.7 KiB
JavaScript
62 lines
2.7 KiB
JavaScript
// 分析成功卡号的规律(完整16位卡号)
|
||
const fullCards = [
|
||
// 原始16张
|
||
'6228367545055812', '6228367548774419', '6228367546781457', '6228367542738949',
|
||
'6228367542602400', '6228367548575105', '6228367546496080', '6228367540057649',
|
||
'6228367549574719', '6228367548435128', '6228367542797374', '6228367545956423',
|
||
'6228367547237848', '6228367540385107', '6228367544252006', '6228367547562054',
|
||
// 今天54张
|
||
'6228367541130577', '6228367540744030', '6228367549888788', '6228367549131205',
|
||
'6228367541450744', '6228367547238010', '6228367547300364', '6228367540814288',
|
||
'6228367546042579', '6228367546361755', '6228367542443235', '6228367543564435',
|
||
'6228367548400627', '6228367544445204', '6228367542653734', '6228367549976732',
|
||
'6228367540810302', '6228367540707201', '6228367545237808', '6228367544322734',
|
||
'6228367541880148', '6228367549130520', '6228367547863197', '6228367541210049',
|
||
'6228367549031561', '6228367542464926', '6228367542487000', '6228367545452860',
|
||
'6228367548491592', '6228367545022853', '6228367545864858', '6228367544742832',
|
||
'6228367540023658', '6228367547416988', '6228367547093159', '6228367549198576',
|
||
'6228367548160064', '6228367546223252', '6228367544873785', '6228367541299976',
|
||
'6228367542940032', '6228367546998937', '6228367545800241', '6228367543770784',
|
||
'6228367545976843', '6228367547542551', '6228367543917914', '6228367545657930',
|
||
'6228367586381796', '6228367544322809', '6228367549131254', '6228367543917146',
|
||
'6228367546998903', '6228367545864460'
|
||
];
|
||
|
||
// 提取后3位(不含校验位)
|
||
const patterns = fullCards.map(card => card.slice(-4, -1));
|
||
|
||
// 统计每个位置的数字频率
|
||
const pos1 = {}; // 百位
|
||
const pos2 = {}; // 十位
|
||
|
||
patterns.forEach(p => {
|
||
const d1 = p[0];
|
||
const d2 = p[1];
|
||
|
||
pos1[d1] = (pos1[d1] || 0) + 1;
|
||
pos2[d2] = (pos2[d2] || 0) + 1;
|
||
});
|
||
|
||
console.log('=== 70张成功卡号的数字分布规律 ===\n');
|
||
|
||
console.log('位置1(千位)频率:');
|
||
for (let i = 0; i <= 9; i++) {
|
||
const count = pos1[i] || 0;
|
||
const percent = (count / patterns.length * 100).toFixed(1);
|
||
console.log(` ${i}: ${count}次 (${percent}%)`);
|
||
}
|
||
|
||
console.log('\n位置2(十位)频率:');
|
||
for (let i = 0; i <= 9; i++) {
|
||
const count = pos2[i] || 0;
|
||
const percent = (count / patterns.length * 100).toFixed(1);
|
||
console.log(` ${i}: ${count}次 (${percent}%)`);
|
||
}
|
||
|
||
// 生成权重数组(用于config.ts)- 只需要2位
|
||
console.log('\n=== 生成权重配置(后2位,不含校验位)===\n');
|
||
console.log('const positionWeights = [');
|
||
console.log(' [' + Array.from({length: 10}, (_, i) => pos1[i] || 0).join(', ') + '], // 百位');
|
||
console.log(' [' + Array.from({length: 10}, (_, i) => pos2[i] || 0).join(', ') + '] // 十位');
|
||
console.log('];');
|