make elliptic curves available to solver.py
This commit is contained in:
15
solver.py
15
solver.py
@@ -1,6 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
from RuneSolver import VigenereSolver, SequenceSolver
|
||||
from RuneText import Rune, RuneText
|
||||
from lib import elliptic_curve
|
||||
import sys
|
||||
|
||||
|
||||
@@ -14,6 +15,7 @@ PRIMES_3301 = load_sequence_file('data/seq_primes_3301.txt')
|
||||
NOT_PRIMES = load_sequence_file('data/seq_not_primes.txt')
|
||||
FIBONACCI = load_sequence_file('data/seq_fibonacci.txt')
|
||||
LUCAS = load_sequence_file('data/seq_lucas_numbers.txt')
|
||||
MOEBIUS = load_sequence_file('data/seq_moebius.txt')
|
||||
|
||||
|
||||
def print_all_solved():
|
||||
@@ -77,17 +79,23 @@ def try_totient_on_unsolved():
|
||||
slvr = SequenceSolver()
|
||||
slvr.output.QUIET = True
|
||||
slvr.output.BREAK_MODE = '' # disable line breaks
|
||||
# for uuu in ['54-55']:
|
||||
# for uuu in ['15-22']:
|
||||
for uuu in ['0-2', '3-7', '8-14', '15-22', '23-26', '27-32', '33-39', '40-53', '54-55']:
|
||||
print()
|
||||
print(uuu)
|
||||
with open(f'pages/p{uuu}.txt', 'r') as f:
|
||||
slvr.input.load(RuneText(f.read()[:110]))
|
||||
slvr.input.load(RuneText(f.read()[:15]))
|
||||
# alldata = slvr.input.runes_no_whitespace() + [Rune(i=29)]
|
||||
|
||||
def b60(x):
|
||||
v = x % 60
|
||||
return v if v < 29 else 60 - v
|
||||
|
||||
def ec(r, i):
|
||||
p1, p2 = elliptic_curve(i, 149, 263, 3299)
|
||||
if p1 is None:
|
||||
return r.index
|
||||
return r.index + p1 % 29
|
||||
# for p in PRIMES[:500]:
|
||||
# print(p)
|
||||
# for z in range(29):
|
||||
@@ -103,7 +111,8 @@ def try_totient_on_unsolved():
|
||||
# slvr.FN = lambda i, r: Rune(i=b60(r.prime) + z % 29)
|
||||
# slvr.FN = lambda i, r: Rune(i=((r.prime + alldata[i + 1].prime) + z) % 60 // 2)
|
||||
# slvr.FN = lambda i, r: Rune(i=(3301 * r.index + z) % 29)
|
||||
slvr.FN = lambda i, r: Rune(i=(67 * r.index + z) % 29)
|
||||
slvr.FN = lambda i, r: Rune(i=(ec(r, i) + z) % 29)
|
||||
# slvr.FN = lambda i, r: Rune(i=(r.prime - PRIMES[FIBONACCI[i]] + z) % 29)
|
||||
# slvr.FN = lambda i, r: Rune(i=(r.prime ** i + z) % 29)
|
||||
slvr.run()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user