init: v1.0.0

This commit is contained in:
yaole
2026-05-27 23:03:00 +08:00
commit 8d97f750eb
466 changed files with 80067 additions and 0 deletions
@@ -0,0 +1,30 @@
import math
n = 0xB640000002A3A6F1D603AB4FF58EC74449F2934B18EA8BEEE56EE19CD69ECF25
p = 0xB640000002A3A6F1D603AB4FF58EC74521F2934B1A7AEEDBE56F9B27E351457D
p0=p%n
n2 = int(math.sqrt(n))
# n = 65000549695646603732796438742359905742570406053903786389881062969044166799969
# p = 65000549695646603732796438742359905742825358107623003571877145026864184071783
b = [13037178982157583874, 13037178982157583875, 13037178982157583875, 13037178982157583875]
a = [v*(p**i) % n for i,v in enumerate(b)]
print(a)
print(sum(a)%n)
# x = sum(out[i]*(p**i))
def padic(x):
m = p % n
print(m)
b=[]
while x > 0:
b.append(x%m)
x = x // m
return b
print(padic(n))
print("----------")
for m in [n*(n//4+n2+i) for i in range(1,10)]:
print(padic(m))
print("")
+61
View File
@@ -0,0 +1,61 @@
#!/usr/bin/python3
import math
n = 0xB640000002A3A6F1D603AB4FF58EC74449F2934B18EA8BEEE56EE19CD69ECF25
p = 0xB640000002A3A6F1D603AB4FF58EC74521F2934B1A7AEEDBE56F9B27E351457D
# n = 65000549695646603732796438742359905742570406053903786389881062969044166799969
# p = 65000549695646603732796438742359905742825358107623003571877145026864184071783
sqrt_n = int( math.sqrt(n))
def lamb(n):
l = pow(2,(n-1)//3, n)
l2 = l**2%n
return min(l,l2)
# return max(l,l2)
def norm(a,b):
return int(math.sqrt(a**2 + b**2))
l = lamb(n)
print("lambda=",l)
print("lambda^2=",l**2%n)
print("")
# eta = pow(p-2, 2*(p-1)//3,p)
# print("eta = ", hex(eta))
# print("eta^2 = ", hex(eta**2%p))
s = [1,0]
t = [0,1]
r = [n,l]
while r[-1] > 1:
d = r[-2] // r[-1]
r.append(r[-2] - r[-1]*d)
s.append(s[-2] - s[-1]*d)
t.append(t[-2] - t[-1]*d)
d = r[-2] // r[-1]
r.append(r[-2] - r[-1]*d)
s.append(s[-2] - s[-1]*d)
t.append(t[-2] - t[-1]*d)
# r[-1] < sqrt_n
print("s * n + t * l = r")
for i in range(len(s)):
print("{} * n + {} * lambda = {}".format( s[i], t[i], r[i]))
print("")
print("sqrt(n)=",sqrt_n,"\n")
print("norm:")
print(norm(r[-1], t[-1]))
print(norm(r[-2], t[-2]))
print(norm(r[-3], t[-3]))
print("")
print("v1,v2:")
for i in range(len(s)):
print(r[i], -t[i], "\n==>", norm(r[i], t[i]), r[i] < sqrt_n)
print("")
# print(r[-1], -t[-1])
# print(r[-2], -t[-2])
# print(r[-3], -t[-3])
# print(r[-2]*t[-3]-r[-3]*t[-2]),
+33
View File
@@ -0,0 +1,33 @@
#!/usr/bin/env sage
from sage.all import *
n = 0xB640000002A3A6F1D603AB4FF58EC74449F2934B18EA8BEEE56EE19CD69ECF25
p = 0xB640000002A3A6F1D603AB4FF58EC74521F2934B1A7AEEDBE56F9B27E351457D
# n = 65000549695646603732796438742359905742570406053903786389881062969044166799969
# p = 65000549695646603732796438742359905742825358107623003571877145026864184071783
# p_inv = pow(p, n - 2, n)
# a = matrix(ZZ, 4, 4, [
# [n, 0, 0, 0],
# [0, p, -1, 0],
# [0, 0, p, -1],
# [0, 0, 0, n],
# [n - 1, p_inv, 0, 0],
# [n - 2, p_inv, p_inv ** 2 % n, 0],
# [n - 3, p_inv, p_inv ** 2 % n, p_inv ** 3 % n]
# ])
# print(a.BKZ())
x = 0x600000000058F98A
t = 6*x*x+1
r = p+1-t
# x = 6518589491078791937
v = [[x + 1, x, x, -2 * x],[2 * x + 1, -x, -(x + 1), -x],[2 * x, 2 * x + 1, 2 * x + 1, 2 * x + 1],[x - 1, 4 * x + 2, -(2 * x - 1), x - 1]]
mv = matrix(ZZ, 4,4,v)
print(mv.det())
print()
print(-3*r)
for l in v:
print("bigFromBase10(\"{}\"),bigFromBase10(\"{}\"),bigFromBase10(\"{}\"),bigFromBase10(\"{}\")".format(l[0],l[1],l[2],l[3]))
# a = [v * (p ** i) % n for i, v in enumerate(l)]
# print(sum(a) % n)
print(2*x*x+3*x+1, 12*x*x*x+8*x*x+x, 6*x*x*x+4*x*x+x, -2*x*x-x)