Skip to content

Instantly share code, notes, and snippets.

@aerykk
Created September 30, 2019 16:38
Show Gist options
  • Save aerykk/ab45e189d406549e001a793c7760b0a8 to your computer and use it in GitHub Desktop.
Save aerykk/ab45e189d406549e001a793c7760b0a8 to your computer and use it in GitHub Desktop.
Number pick generate for Canada Lotto Max
const pastWinners = [
[2, 3, 4, 8, 9, 20, 30],
[10, 15, 16, 17, 19, 27, 38],
[18, 31, 38, 45, 46, 47, 48],
[8, 9, 12, 20, 22, 27, 30],
[25, 28, 31, 36, 42, 44, 49],
[3, 9, 15, 16, 19, 45, 48],
[1, 3, 5, 10, 16, 27, 43],
[3, 12, 21, 34, 37, 38, 41],
[2, 4, 18, 19, 20, 39, 44],
[3, 5, 7, 11, 13, 20, 29],
[12, 17, 22, 27, 28, 29, 35],
[2, 9, 18, 33, 36, 40, 49],
[9, 11, 23, 33, 35, 36, 42],
[8, 11, 14, 17, 26, 30, 36],
[6, 8, 12, 19, 20, 25, 49],
[1, 4, 5, 22, 25, 32, 34],
[1, 11, 20, 32, 41, 42, 44],
[3, 5, 17, 23, 28, 43, 46],
[3, 10, 16, 28, 31, 38, 47],
[18, 23, 28, 37, 44, 45, 47],
[12, 25, 27, 29, 34, 44, 45],
[2, 11, 17, 18, 22, 25, 39],
[7, 10, 13, 19, 24, 31, 41],
[4, 13, 23, 30, 31, 37, 43],
[11, 22, 28, 33, 39, 43, 47],
[1, 11, 15, 16, 20, 29, 39],
[8, 9, 11, 17, 37, 39, 41],
[6, 14, 16, 22, 30, 42, 45],
[1, 8, 9, 22, 29, 30, 32],
[7, 18, 29, 30, 41, 45, 46],
[1, 12, 18, 19, 21, 24, 41],
[7, 12, 15, 23, 35, 43, 49],
[13, 24, 29, 31, 35, 36, 42],
[13, 18, 20, 26, 32, 35, 47],
[7, 25, 26, 28, 32, 36, 37],
[13, 17, 24, 32, 33, 44, 45],
[5, 14, 22, 23, 35, 40, 49],
[6, 19, 24, 25, 36, 37, 39],
[3, 8, 9, 24, 28, 31, 44],
[7, 8, 13, 19, 23, 32, 40],
[9, 18, 25, 30, 39, 40, 43],
[1, 8, 16, 19, 26, 34, 41],
[1, 3, 13, 15, 28, 36, 49],
[22, 23, 26, 35, 37, 39, 47],
[13, 16, 19, 21, 24, 26, 30],
[8, 14, 17, 27, 28, 30, 48],
[1, 17, 31, 33, 39, 46, 49],
[26, 28, 33, 38, 42, 43, 47],
[5, 11, 20, 22, 35, 38, 46],
[3, 15, 22, 23, 33, 47, 49],
[5, 12, 18, 26, 29, 31, 37],
[16, 17, 18, 20, 40, 42, 43],
[1, 14, 15, 16, 24, 39, 49],
[1, 4, 12, 27, 35, 38, 46],
[8, 14, 16, 17, 18, 34, 41],
[10, 17, 25, 27, 29, 34, 38],
[1, 6, 14, 23, 38, 40, 47],
[2, 10, 37, 38, 39, 43, 47],
[15, 20, 24, 30, 39, 44, 46],
[1, 2, 15, 16, 22, 29, 41],
[1, 7, 18, 28, 31, 39, 48],
[18, 19, 23, 34, 39, 43, 46],
[2, 9, 13, 16, 25, 26, 45],
[13, 14, 19, 26, 27, 36, 37],
[1, 4, 11, 17, 27, 36, 37],
[9, 12, 16, 24, 33, 45, 47],
[2, 11, 12, 25, 33, 39, 44],
[2, 4, 11, 17, 26, 41, 42],
[4, 8, 13, 16, 26, 33, 38],
[7, 24, 26, 36, 37, 43, 44],
[2, 3, 6, 22, 24, 42, 46],
[1, 5, 20, 33, 34, 41, 42],
[7, 11, 20, 21, 22, 37, 47],
[11, 12, 25, 28, 33, 41, 43],
[14, 16, 18, 21, 38, 44, 49],
[8, 11, 18, 25, 34, 35, 38],
[11, 25, 26, 28, 38, 44, 45],
[11, 14, 20, 22, 26, 35, 43],
[10, 14, 22, 36, 38, 44, 45],
[3, 4, 13, 16, 35, 47, 49],
[23, 25, 29, 30, 42, 44, 45],
[8, 12, 14, 34, 37, 44, 48],
[1, 2, 12, 15, 22, 25, 41],
[16, 19, 21, 32, 37, 39, 45],
[2, 5, 6, 7, 8, 33, 45],
[1, 11, 15, 20, 36, 41, 47],
[3, 7, 20, 25, 29, 31, 44],
[1, 17, 19, 23, 28, 29, 47],
[5, 9, 14, 24, 33, 37, 46],
[11, 16, 19, 22, 24, 38, 41],
[8, 19, 24, 28, 34, 42, 48],
[1, 3, 8, 22, 29, 38, 47],
[4, 10, 21, 28, 29, 37, 45],
[2, 8, 24, 30, 31, 38, 40],
[10, 13, 18, 19, 38, 47, 48],
[5, 10, 14, 19, 31, 33, 47],
[1, 5, 11, 26, 28, 30, 41],
[2, 9, 27, 32, 38, 39, 43],
[11, 17, 24, 26, 34, 35, 39],
[5, 8, 20, 21, 29, 40, 47],
[2, 11, 20, 22, 31, 35, 47],
[7, 10, 21, 24, 38, 40, 49],
[8, 14, 18, 20, 24, 39, 46],
[4, 23, 29, 36, 39, 44, 46],
[3, 5, 19, 29, 33, 34, 44],
[33, 34, 36, 42, 44, 45, 47],
[14, 18, 22, 25, 36, 39, 44],
[8, 9, 12, 24, 29, 36, 37],
[4, 12, 17, 21, 32, 38, 42],
[3, 13, 24, 36, 39, 44, 45],
[7, 12, 14, 15, 27, 34, 44],
[4, 10, 11, 27, 29, 32, 41],
[1, 12, 15, 22, 25, 45, 48],
[3, 10, 17, 19, 26, 27, 42],
[19, 22, 25, 32, 37, 45, 47],
[5, 7, 15, 18, 19, 27, 28],
[4, 6, 10, 20, 40, 46, 47],
[11, 15, 25, 26, 39, 47, 49],
[9, 26, 28, 32, 37, 40, 45],
[19, 30, 31, 36, 40, 44, 49],
[1, 8, 16, 25, 30, 42, 48],
[10, 12, 14, 28, 36, 39, 45],
[2, 17, 22, 24, 26, 42, 48],
[1, 16, 20, 29, 33, 44, 46],
[5, 11, 15, 26, 27, 33, 39],
[12, 21, 28, 37, 40, 43, 47],
[1, 14, 16, 20, 26, 32, 34],
[16, 17, 19, 22, 31, 47, 49],
[3, 6, 8, 17, 21, 28, 34],
[1, 8, 10, 24, 26, 37, 45],
[11, 21, 22, 24, 26, 36, 43],
[13, 16, 20, 35, 37, 43, 49],
[1, 9, 17, 19, 25, 27, 38],
[9, 12, 13, 14, 28, 39, 41],
[5, 6, 27, 28, 31, 41, 45],
[1, 6, 15, 32, 42, 45, 46],
[6, 8, 15, 24, 26, 39, 44],
[9, 17, 27, 30, 31, 34, 42],
[4, 14, 24, 41, 42, 44, 48],
[6, 9, 22, 23, 36, 38, 47],
[2, 11, 20, 22, 33, 40, 43],
[19, 20, 26, 31, 34, 39, 48],
[6, 7, 8, 9, 17, 23, 30],
[5, 11, 14, 17, 28, 41, 47],
[20, 21, 22, 34, 42, 43, 45],
[7, 26, 27, 31, 32, 33, 42],
[13, 15, 21, 24, 25, 36, 48],
[6, 10, 13, 14, 25, 41, 46],
[5, 8, 9, 12, 22, 39, 45],
[6, 20, 28, 29, 30, 31, 46],
[7, 12, 28, 34, 45, 46, 48],
[8, 15, 24, 25, 27, 36, 43],
[4, 8, 9, 20, 23, 45, 46],
[12, 21, 28, 34, 36, 45, 48],
[7, 11, 19, 38, 40, 41, 42],
[1, 10, 12, 20, 29, 35, 47],
[2, 11, 19, 38, 43, 45, 49],
[2, 7, 12, 28, 29, 38, 48],
[9, 14, 19, 21, 31, 32, 40],
[8, 11, 14, 23, 26, 42, 47],
[10, 12, 24, 26, 34, 43, 47],
[1, 7, 15, 18, 21, 30, 45],
[13, 16, 17, 21, 35, 40, 46],
[21, 22, 27, 30, 39, 42, 44],
[7, 8, 15, 19, 36, 37, 41],
[2, 4, 5, 17, 29, 39, 41],
[3, 13, 15, 22, 33, 41, 49],
[1, 15, 17, 25, 34, 40, 41],
[5, 13, 20, 37, 39, 40, 41],
[2, 5, 27, 32, 35, 42, 46],
[2, 4, 11, 19, 28, 29, 38],
[23, 24, 29, 36, 42, 43, 49],
[12, 14, 23, 25, 31, 38, 40],
[1, 6, 30, 40, 46, 47, 49],
[2, 4, 16, 23, 30, 32, 46],
[7, 14, 15, 16, 21, 30, 41],
[4, 7, 11, 19, 34, 38, 48],
[2, 10, 13, 16, 30, 33, 48],
[1, 30, 38, 39, 44, 45, 47],
[1, 4, 21, 24, 29, 30, 46],
[16, 23, 24, 25, 40, 46, 47],
[1, 7, 17, 27, 32, 44, 48],
[6, 18, 20, 37, 40, 44, 46],
[3, 37, 38, 40, 42, 43, 46],
[7, 11, 14, 15, 19, 30, 41],
[7, 8, 16, 18, 24, 25, 46],
[10, 11, 23, 28, 32, 34, 41],
[3, 7, 15, 23, 29, 31, 45],
[7, 10, 16, 35, 36, 42, 45],
[2, 8, 10, 15, 17, 20, 24],
[2, 8, 9, 10, 24, 26, 41],
[4, 12, 16, 27, 37, 39, 44],
[26, 34, 38, 41, 46, 48, 49],
[6, 9, 18, 22, 25, 32, 44],
[1, 5, 7, 13, 14, 33, 46],
[10, 15, 21, 28, 32, 36, 37],
[1, 14, 15, 18, 26, 42, 48],
[6, 29, 30, 31, 36, 42, 45],
[3, 7, 12, 18, 31, 33, 35],
[8, 9, 14, 19, 28, 31, 46],
[15, 20, 29, 39, 40, 43, 46],
[3, 6, 13, 17, 22, 25, 43],
[2, 14, 30, 34, 38, 47, 48],
[10, 14, 15, 16, 42, 45, 48],
[3, 4, 7, 12, 17, 26, 34],
[6, 18, 19, 26, 37, 39, 47],
[2, 5, 7, 13, 15, 30, 38],
[1, 3, 6, 8, 14, 20, 30],
[3, 12, 25, 30, 42, 44, 45],
[8, 27, 30, 32, 34, 35, 42],
[18, 19, 32, 36, 38, 40, 43],
[5, 13, 18, 28, 31, 38, 44],
[7, 15, 24, 25, 27, 43, 47],
[2, 3, 5, 18, 37, 38, 46],
[5, 6, 8, 13, 24, 37, 46],
[3, 8, 11, 20, 28, 36, 38],
[1, 23, 26, 33, 35, 38, 42],
[13, 16, 22, 26, 35, 36, 39],
[9, 16, 17, 27, 32, 38, 47],
[6, 9, 16, 19, 20, 24, 30],
[1, 2, 5, 10, 11, 25, 34],
[7, 9, 24, 30, 35, 42, 43],
[1, 3, 16, 33, 34, 40, 42],
[1, 6, 10, 16, 18, 21, 31],
[5, 10, 11, 20, 26, 38, 46],
[4, 6, 7, 16, 18, 40, 46],
[12, 17, 32, 36, 43, 44, 49],
[12, 16, 24, 29, 36, 40, 47],
[3, 5, 17, 30, 36, 47, 49],
[2, 5, 10, 11, 23, 25, 31],
[3, 11, 16, 24, 31, 39, 43],
[12, 13, 16, 30, 32, 35, 37],
[5, 7, 29, 35, 39, 41, 49],
[6, 15, 18, 19, 25, 44, 46],
[3, 9, 24, 25, 28, 36, 40],
[9, 16, 24, 30, 39, 40, 45],
[1, 3, 14, 33, 35, 39, 45],
[19, 30, 33, 34, 36, 41, 48],
[8, 15, 16, 21, 31, 37, 39],
[1, 2, 4, 21, 23, 35, 40],
[3, 4, 5, 7, 31, 33, 40],
[1, 6, 7, 16, 22, 31, 33],
[4, 7, 20, 22, 26, 28, 29],
[1, 10, 16, 23, 29, 35, 39],
[6, 8, 11, 16, 17, 19, 24],
[13, 19, 37, 38, 40, 43, 48],
[6, 10, 16, 27, 38, 40, 45],
[7, 10, 15, 23, 30, 36, 44],
[4, 9, 18, 32, 35, 38, 40],
[12, 28, 31, 38, 40, 41, 45],
[7, 16, 31, 35, 39, 44, 48],
[1, 6, 9, 11, 17, 37, 39],
[2, 13, 18, 24, 27, 37, 43],
[6, 16, 24, 32, 36, 45, 47],
[3, 4, 11, 18, 37, 42, 44],
[3, 6, 19, 31, 34, 42, 45],
[2, 24, 35, 38, 39, 41, 48],
[1, 3, 10, 15, 25, 28, 31],
[7, 8, 10, 15, 24, 26, 41],
[11, 12, 16, 22, 30, 32, 49],
[13, 16, 24, 29, 33, 40, 49],
[10, 26, 28, 33, 34, 35, 40],
[7, 8, 9, 16, 21, 28, 48],
[12, 16, 19, 20, 28, 34, 42],
[10, 11, 18, 24, 26, 42, 47],
[2, 14, 15, 24, 40, 43, 44],
[2, 6, 12, 15, 16, 22, 49],
[1, 7, 23, 36, 37, 39, 41],
[6, 19, 20, 25, 31, 35, 36],
[5, 6, 10, 17, 22, 36, 48],
[2, 6, 20, 22, 30, 34, 49],
[6, 15, 19, 26, 43, 44, 49],
[2, 9, 23, 29, 30, 34, 43],
[5, 9, 12, 18, 24, 35, 42],
[3, 17, 19, 20, 34, 35, 43],
[14, 16, 17, 36, 45, 46, 48],
[5, 12, 15, 39, 44, 46, 49],
[2, 7, 15, 38, 43, 44, 47],
[2, 9, 12, 13, 27, 28, 36],
[2, 12, 15, 18, 21, 22, 25],
[5, 19, 24, 34, 35, 38, 43],
[5, 7, 10, 15, 22, 45, 47],
[9, 19, 21, 24, 39, 43, 48],
[8, 18, 21, 27, 33, 46, 49],
[3, 10, 19, 21, 27, 35, 36],
[4, 6, 21, 26, 30, 34, 35],
[10, 13, 15, 18, 25, 36, 47],
[2, 3, 8, 20, 28, 31, 34],
[3, 6, 37, 40, 42, 44, 48],
[2, 14, 15, 17, 24, 38, 40],
[8, 11, 12, 13, 22, 33, 47],
[7, 12, 16, 19, 21, 24, 47],
[9, 16, 17, 19, 22, 41, 43],
[9, 15, 17, 28, 35, 39, 41],
[1, 2, 5, 6, 38, 39, 46],
[5, 12, 24, 31, 39, 45, 49],
[14, 23, 24, 25, 28, 41, 45],
[3, 8, 13, 30, 38, 45, 47],
[5, 9, 10, 32, 37, 44, 46],
[1, 18, 19, 29, 31, 32, 46],
[5, 11, 22, 29, 38, 42, 49],
[3, 10, 13, 23, 31, 41, 45],
[6, 8, 10, 17, 28, 29, 38],
[1, 5, 9, 19, 27, 35, 48],
[8, 9, 11, 22, 24, 42, 46],
[1, 2, 5, 26, 29, 36, 47],
[3, 4, 20, 25, 30, 35, 48],
[1, 2, 3, 15, 22, 37, 41],
[5, 7, 12, 15, 35, 45, 47],
[1, 12, 23, 27, 30, 31, 37],
[5, 6, 32, 33, 39, 42, 47],
[7, 8, 10, 11, 19, 34, 45],
[2, 27, 30, 31, 37, 46, 47],
[11, 14, 18, 20, 37, 41, 46],
[5, 12, 13, 28, 33, 37, 43],
[2, 3, 5, 22, 23, 32, 33],
[18, 19, 22, 27, 29, 36, 47],
[2, 15, 18, 19, 22, 27, 49],
[1, 2, 18, 26, 27, 39, 42],
[2, 20, 25, 26, 46, 47, 48],
[4, 7, 29, 35, 39, 43, 44],
[3, 13, 14, 23, 33, 36, 45],
[14, 26, 31, 34, 37, 45, 48],
[10, 14, 20, 28, 35, 40, 42],
[1, 12, 20, 22, 30, 34, 38],
[8, 11, 20, 28, 36, 43, 47],
[9, 10, 16, 24, 26, 44, 48],
[4, 7, 13, 24, 26, 27, 43],
[1, 2, 3, 6, 12, 20, 41],
[3, 4, 13, 15, 21, 29, 48],
[1, 6, 7, 24, 31, 36, 39],
[3, 5, 6, 25, 37, 43, 45],
[3, 23, 28, 40, 42, 43, 45],
[14, 15, 16, 19, 30, 36, 46],
[2, 6, 11, 12, 16, 39, 45],
[15, 18, 19, 25, 32, 42, 49],
[3, 11, 12, 19, 35, 45, 47],
[6, 18, 21, 23, 24, 32, 48],
[5, 7, 18, 24, 28, 41, 49],
[7, 18, 19, 29, 39, 47, 48],
[4, 13, 14, 15, 34, 46, 47],
[6, 17, 23, 24, 25, 31, 38],
[1, 15, 26, 28, 31, 39, 49],
[1, 5, 25, 35, 38, 44, 47],
[2, 8, 12, 14, 33, 37, 47],
[8, 24, 28, 34, 37, 43, 45],
[9, 15, 21, 23, 41, 43, 44],
[6, 15, 18, 26, 41, 46, 48],
[1, 2, 8, 13, 22, 45, 46],
[2, 13, 22, 28, 35, 41, 42],
[3, 4, 9, 25, 26, 37, 39],
[11, 24, 26, 31, 42, 44, 46],
[3, 11, 18, 19, 23, 27, 44],
[23, 29, 33, 34, 39, 44, 48],
[8, 10, 15, 24, 30, 35, 49],
[8, 17, 27, 28, 39, 44, 49],
[5, 7, 9, 25, 31, 37, 39],
[5, 8, 13, 15, 27, 28, 37],
[2, 4, 18, 20, 29, 38, 41],
[6, 23, 27, 30, 34, 38, 45],
[1, 3, 7, 19, 31, 39, 49],
[12, 13, 24, 25, 26, 41, 43],
[5, 6, 7, 12, 14, 18, 25],
[8, 16, 24, 27, 30, 38, 40],
[12, 18, 22, 24, 28, 43, 49],
[6, 8, 15, 20, 30, 32, 42],
[2, 3, 8, 13, 18, 20, 23],
[6, 11, 12, 14, 35, 43, 44],
[4, 14, 24, 41, 43, 46, 49],
[4, 15, 21, 30, 33, 35, 47],
[11, 17, 18, 20, 22, 29, 45],
[1, 2, 3, 17, 24, 35, 36],
[4, 13, 23, 28, 32, 40, 42],
[3, 7, 8, 12, 18, 24, 41],
[17, 22, 28, 38, 41, 43, 45],
[15, 18, 20, 28, 29, 40, 47],
[2, 9, 10, 15, 29, 44, 48],
[2, 7, 14, 16, 22, 27, 47],
[8, 11, 12, 25, 28, 30, 33],
[8, 21, 28, 32, 33, 34, 48],
[5, 9, 19, 20, 21, 28, 30],
[7, 12, 14, 18, 30, 45, 47],
[7, 8, 14, 32, 38, 42, 44],
[6, 19, 24, 25, 26, 35, 36],
[1, 13, 20, 24, 39, 45, 47],
[7, 19, 34, 35, 38, 42, 46],
[3, 12, 14, 15, 25, 32, 49],
[13, 18, 25, 41, 44, 48, 49],
[5, 6, 11, 12, 24, 26, 34],
[1, 4, 22, 25, 26, 36, 46],
[2, 5, 10, 21, 25, 35, 49],
[2, 3, 4, 20, 22, 40, 43],
[3, 18, 27, 29, 32, 33, 35],
[3, 14, 19, 30, 32, 39, 46],
[3, 7, 12, 16, 20, 42, 48],
[4, 6, 13, 19, 26, 29, 47],
[1, 3, 13, 18, 19, 39, 48],
[7, 10, 14, 20, 21, 23, 31],
[2, 18, 19, 29, 42, 47, 49],
[2, 6, 10, 12, 24, 30, 37],
[2, 10, 13, 15, 23, 28, 49],
[2, 7, 10, 22, 32, 34, 38],
[8, 23, 25, 26, 33, 41, 43],
[1, 16, 28, 29, 33, 37, 47],
[7, 9, 12, 20, 28, 38, 44],
[1, 10, 13, 26, 43, 46, 49],
[12, 21, 23, 27, 28, 29, 37],
[4, 13, 25, 29, 36, 40, 48],
[13, 15, 17, 18, 19, 47, 49],
[7, 10, 24, 30, 35, 36, 39],
[2, 6, 21, 26, 28, 33, 47],
[12, 15, 19, 20, 28, 29, 39],
[3, 14, 17, 25, 30, 33, 39],
[3, 4, 5, 8, 13, 22, 33],
[10, 12, 13, 25, 28, 29, 41],
[9, 22, 25, 30, 31, 39, 42],
[2, 5, 6, 43, 46, 47, 48],
[4, 17, 27, 32, 34, 39, 47],
[12, 17, 27, 28, 31, 36, 48],
[3, 14, 26, 27, 29, 32, 34],
[4, 5, 7, 8, 18, 30, 35],
[19, 25, 27, 29, 30, 36, 46],
[1, 5, 6, 32, 36, 38, 44],
[5, 7, 11, 40, 41, 47, 48],
[17, 19, 26, 29, 34, 35, 38],
[10, 14, 26, 34, 43, 47, 48],
[9, 10, 19, 24, 28, 30, 31],
[9, 19, 25, 26, 29, 30, 44],
[5, 22, 28, 31, 39, 46, 48],
[5, 6, 26, 29, 34, 36, 43],
[2, 7, 12, 25, 29, 32, 35],
[3, 18, 27, 30, 33, 40, 45],
[11, 18, 23, 24, 27, 28, 39],
[14, 16, 30, 35, 36, 45, 49],
[7, 17, 19, 23, 31, 36, 41],
[3, 6, 10, 14, 19, 25, 33],
[1, 3, 4, 5, 16, 32, 33],
[8, 11, 16, 21, 24, 28, 41],
[6, 7, 17, 20, 32, 44, 49],
[11, 16, 29, 30, 31, 33, 42],
[4, 9, 12, 15, 28, 29, 43],
[3, 11, 12, 16, 34, 36, 37],
[1, 3, 6, 34, 37, 42, 45],
[17, 18, 19, 21, 32, 40, 49],
[5, 8, 18, 22, 32, 39, 45],
[2, 27, 30, 32, 35, 36, 38],
[4, 23, 27, 32, 35, 43, 47],
[9, 12, 17, 23, 34, 42, 47],
[10, 19, 25, 29, 39, 41, 42],
[16, 17, 22, 24, 40, 41, 47],
[17, 26, 30, 32, 34, 39, 41],
[12, 17, 22, 30, 34, 43, 49],
[8, 17, 21, 23, 24, 28, 39],
[7, 9, 13, 18, 27, 33, 44],
[8, 9, 12, 13, 29, 30, 31],
[8, 10, 15, 17, 33, 34, 35],
[1, 4, 5, 7, 22, 29, 48],
[1, 6, 13, 19, 32, 35, 40],
[11, 15, 24, 26, 37, 38, 43],
[2, 8, 28, 30, 36, 39, 42],
[8, 18, 27, 28, 38, 41, 48],
[2, 7, 8, 11, 16, 17, 18],
[6, 9, 10, 14, 17, 18, 19],
[4, 7, 10, 12, 23, 25, 36],
[4, 10, 18, 20, 31, 35, 44],
[5, 15, 25, 38, 42, 46, 47],
[8, 27, 28, 29, 31, 32, 35],
[5, 17, 19, 25, 31, 38, 46]
]
const getLinesCache = (lines) => {
const cache = {}
for (let i = 0; i < lines.length; i++) {
const line = lines[i]
cache[line[0]] = {}
cache[line[0]][line[1]] = {}
cache[line[0]][line[1]][line[2]] = {}
cache[line[0]][line[1]][line[2]][line[3]] = {}
cache[line[0]][line[1]][line[2]][line[3]][line[4]] = {}
cache[line[0]][line[1]][line[2]][line[3]][line[4]][line[5]] = {}
cache[line[0]][line[1]][line[2]][line[3]][line[4]][line[5]][line[6]] = {}
}
return cache
}
pastWinnerCache = getLinesCache(pastWinners)
// Chooser your favorite number and change the value from 0-100 based on how lucky it is
const choices = {
1: 1,
2: 1,
3: 1,
4: 1,
5: 1,
6: 1,
7: 1,
8: 1,
9: 1,
10: 1,
11: 1,
12: 1,
13: 1,
14: 1,
15: 1,
16: 1,
17: 1,
18: 1,
19: 1,
20: 1,
21: 1,
22: 1,
23: 1,
24: 1,
25: 1,
26: 1,
27: 1,
28: 1,
29: 1,
30: 1,
31: 1,
32: 1,
33: 1,
34: 1,
35: 1,
36: 1,
37: 1,
38: 1,
39: 1,
40: 1,
41: 1,
42: 1,
43: 1,
44: 1,
45: 1,
46: 1,
47: 1,
48: 1,
49: 1,
50: 1
}
const totalGeneratedLines = 5
const totalPicksPerLine = 7
const generateLines = function() {
const max = 50
const weightedList = []
for (let choice in choices) {
for (let i = 0; i < choices[choice]; i++) {
weightedList.push(Number.parseInt(choice, 10))
}
}
const getRandomChoice = () => {
return weightedList[Math.floor(Math.random() * Math.floor(weightedList.length - 1))]
}
const ensureNotPicked = (line, pick) => {
for (let i = 0; i < line.length; i++) {
if (line[i] === pick) return false
}
return true
}
const ensureEvenOdd = (line, pick) => {
let odds = 0
let evens = 0
const isEven = (num) => {
return num % 2 === 0
}
if (isEven(pick))
evens++
else
odds++
for (let i = 0; i < line.length; i++) {
if (isEven(line[i]))
evens++
else
odds++
}
if (evens > 4) return false
if (odds > 4) return false
return true
}
const ensureLowHigh = (line, pick) => {
let high = 0
let low = 0
const isHigh = (num) => {
return num > 25
}
if (isHigh(pick))
high++
else
low++
for (let i = 0; i < line.length; i++) {
if (isHigh(line[i]))
high++
else
low++
}
if (high > 4) return false
if (low > 4) return false
return true
}
const ensureNotConsecutive = (line, pick) => {
for (let i = 0; i < line.length; i++) {
if (pick === line[i]+1 || pick === line[i]-1)
return false
}
return true
}
const ensureNotCommon = (line, pick) => {
if (pick === 1) return false
return true
}
const ensureNoPattern = (line, pick) => {
for (let i = 0; i < 10; i++) {
if (line[0] % i === 0
&& line[1] % i === 0
&& line[2] % i === 0
&& line[3] % i === 0
&& line[4] % i === 0
&& line[5] % i === 0
&& line[6] % i === 0)
return false
}
return true
}
const ensureAverageAddition = (line) => {
let total = 0
for (let i = 0; i < line.length; i++) {
total += line[i]
}
if (total < 120) return false
if (total > 210) return false
return true
}
const ensureNotSimilar = (lines, line) => {
for (let i = 0; i < lines.length; i++) {
let same = 0
for (let j = 0; j < lines[i].length; j++) {
if (line.includes(lines[i][j])) {
same++
if (same > 3) return false
}
}
}
return true
}
const ensureUnique = (lines, line) => {
const cache = getLinesCache(lines)
try {
return !Boolean(cache[line[0]][line[1]][line[2]][line[3]][line[4]][line[5]][line[6]])
} catch (e) {
}
return true
}
const ensureNeverWon = (line) => {
try {
return !Boolean(pastWinnerCache[line[0]][line[1]][line[2]][line[3]][line[4]][line[5]][line[6]])
} catch (e) {
}
return true
}
const getFiller = () => {
const goodFillers = []
// temp
return 1
}
const generatePick = (line) => {
const pick = getRandomChoice()
if (!ensureNotPicked(line, pick)) return
if (!ensureEvenOdd(line, pick)) return
if (!ensureLowHigh(line, pick)) return
if (!ensureNotConsecutive(line, pick)) return
if (!ensureNotCommon(line, pick)) return
if (!ensureNoPattern(line, pick)) return
return pick
}
const generateLine = () => {
let line = []
for (let i = 0; i < totalPicksPerLine; i++) {
const pick = generatePick(line)
if (!pick) {
i--
continue
}
line.push(pick)
}
line.sort(function (a, b) { return a - b })
if (!ensureAverageAddition(line)) return
if (!ensureNeverWon(line)) return
if (!ensureUnique(lines, line)) return
if (!ensureNotSimilar(lines, line)) return
return line
}
const lines = []
for (let i = 0; i < totalGeneratedLines; i++) {
const line = generateLine()
if (!line) {
i--
continue
}
lines.push(line)
}
return lines
}
@aerykk
Copy link
Author

aerykk commented Sep 30, 2019

I like the idea of writing a script to win the lotto, even though it's highly unlikely it would be pretty cool. So I studied how to generate random numbers that are more likely to win, as well as less likely to be common picks (to avoid splits). If you have thoughts on how to improve it please let me know.

@aerykk
Copy link
Author

aerykk commented Sep 30, 2019

Change the choices array with your lucky numbers (pick like 20, then their values to 100, and leave rest at 1 or change to 0 to not be picked)

@aerykk
Copy link
Author

aerykk commented Sep 30, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment