because "^" part only from 1 to 130
Oh, COBRAS broke the square root bound! We only have 130 parts in a 130-bit puzzle, guess no one figured this out. Let's now reduce the range from 130 to 32, because why not. Maybe divide everything by zero (n) and call it a day? I'd say the magic astrological chart would work better though. But in base 112. Add parity to each letter in the puzzle addresses and solve using bubble sort. Spin the wheel until we reduce the checksums to zero, than split circle in 256. Convert each digit from cartesian to polar and compute corresponding point on the curve. Make lattice from points, to compute correct font size to use. Unspin, rejoin, set font size, get all keys. There, ECDLP solved.
no, puzzle is, this,
Thanks to nomachine for code
this code is very good, but, too slow for 65 pcs, maybe nomachine modify to fast RND gen in rust ?
import random as A
tri = [40,38,35,34,33,32,29,27,25,24,22,20,19,18]
B=list(range(40,17,-1))
C =[]
count = 0
while tri != C:
count=count+1
C=A.sample(B,k=A.randint(14,14))
C.sort(reverse=True);
if tri == C:
print(C,"yes")
if count % 60000 ==0:
print(C,count)
print(len(tri))
and this
speed is very difference, but
from collections import deque
tri = [41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18]#,9,8,7,6,5,4,2]
one = [40,38,35,34,33,32,29,27,25,24,22,20,19,18]
def generate_combinations(lst, r):
if r == 0:
yield []
else:
for i in range(len(lst)):
current = lst
rest = lst[i + 1:]
for c in generate_combinations(rest, r - 1):
yield [current] + c
def bfs(tri, one):
queue = deque([(tri, [])])
counter = 0
while queue:
current_tri, path = queue.popleft()
counter += 1
if len(current_tri) == len(one):
print("Пpoмeжyтoчный peзyльтaт:", current_tri, flush=True)
if set(current_tri) == set(one):
print("Peшeниe нaйдeнo!", flush=True)
print(path, flush=True)
return
for r in range(1, len(current_tri) + 1):
for combination in generate_combinations(current_tri, r):
counter= counter+1
new_tri = [x for x in current_tri if x not in combination]
if len(new_tri) <= len(one):
if counter % 1000 == 0:
print("Oбpaбaтывaeтcя кoмбинaция:", combination, "Counter:", counter, flush=True)
queue.append((new_tri, path + combination))
bfs(tri, one)
and you need jast 50..65 puzzle length for solve 2^120
all parts of puzzle has restriction, I don understand what sqrt you talk, but jast what total part of puzle 120 and for solve need aproximately 120 / 2