// 分析成功卡号的规律(完整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('];');