F:= GF(7^2);
G := Matrix(F, 6, 14, [
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
[w^2, w^4, w^6, w^8, w^10, w^12, w^5, w^7, w^9, w^11, w^13, w^15,0,0],
[(w^2)^2, (w^4)^2, (w^6)^2, (w^8)^2, (w^10)^2, (w^12)^2, (w^5)^2, (w^7)^2, (w^9)^2, (w^11)^2, (w^13)^2, (w^15)^2,0,0],
[(w^2)^3, (w^4)^3, (w^6)^3, (w^8)^3, (w^10)^3, (w^12)^3,(w^5)^3, (w^7)^3, (w^9)^3, (w^11)^3, (w^13)^3, (w^15)^3,0,0],
[(w^2)^4, (w^4)^4, (w^6)^4, (w^8)^4, (w^10)^4, (w^12)^4,(w^5)^4, (w^7)^4, (w^9)^4, (w^11)^4, (w^13)^4, (w^15)^4,3*w+0,2*w+4],
[(w^2)^5, (w^4)^5, (w^6)^5, (w^8)^5, (w^10)^5, (w^12)^5,(w^5)^5, (w^7)^5, (w^9)^5, (w^11)^5, (w^13)^5, (w^15)^5,5*w+2,1*w+0]
]);
C := LinearCode(G);
C_d:= MinimumDistance(C);
H:= ParityCheckMatrix(C);
Wt_C := WeightDistribution(C);
C_dual := Dual(C);
C_dual_d := MinimumDistance(C_dual);
Hll:=Hull(C);
C;
print "MinimumDistance of C is", C_d;
print "WeightDistribution of C is", Wt_C;
C_dual;
print "MinimumDistance of C_dual is", C_dual_d;
print "Hull(C) is", Hll;
// 判断MDS
if IsMDS(C) then
"MDS code true";
else
"MDS code false";
end if;
// 判断EuclideanLCD
if IsSingular(G * Transpose(G)) then
"EuclideanLCD code false";
else
"EuclideanLCD code true";
end if;
// 判断Selforthogonal
if IsZero(G * Transpose(G)) then
"EuclideanSelforthogonal code true";
else
"EuclideanSelforthogonal code false";
end if;
// 判断Euclidean自对偶
if IsSelfDual(C) then
"SelfDual code true";
else
"SelfDual code false";
end if;
// 判断射影码
if IsProjective(C) then
"Projective code true";
else
"Projective code false";
end if;
import tkinter as tk
from tkinter import messagebox
def compute_n_given_phi():
try:
k = int(entry_k.get())
if k <= 0:
messagebox.showerror("Invalid Input", "Please enter a positive integer for k.")
return
n_values = find_n_given_phi(k)
if not n_values:
result = f"No integers n satisfy φ(n) = {k}."
else:
result = f"Integers n such that φ(n) = {k}:\n{n_values}"
text_result.config(state='normal')
text_result.delete('1.0', tk.END)
text_result.insert(tk.END, result)
text_result.config(state='disabled')
except ValueError:
messagebox.showerror("Invalid Input", "Please enter a valid integer for k.")
def find_n_given_phi(k):
max_n = 10 * k
n_values = []
for n in range(1, max_n + 1):
if euler_phi(n) == k:
n_values.append(n)
return n_values
def euler_phi(n):
result = n
p = 2
while p * p <= n:
if n % p == 0:
while n % p == 0:
n = n // p
result -= result // p
p += 1
if n > 1:
result -= result // n
return result
root = tk.Tk()
root.title("Find n given φ(n) = k")
label_k = tk.Label(root, text="Enter a positive integer (k):")
label_k.pack(pady=5)
entry_k = tk.Entry(root)
entry_k.pack(pady=5)
button_compute = tk.Button(root, text="Find n such that φ(n) = k", command=compute_n_given_phi)
button_compute.pack(pady=10)
text_result = tk.Text(root, height=15, width=50, state='disabled')
text_result.pack(pady=5)
root.mainloop()
from math import sqrt, floor
from typing import Dict
def prime_factors(n: int) -> Dict[int, int]:
factors = {}
num = n
while num % 2 == 0:
factors[2] = factors.get(2, 0) + 1
num //= 2
i = 3
while i * i <= num:
while num % i == 0:
factors[i] = factors.get(i, 0) + 1
num //= i
i += 2
if num > 2:
factors[num] = 1
return factors
def SL(m: int) -> int:
if m == 1:
return 1
factors = prime_factors(m)
max_required = 0
for p, k in factors.items():
current = pow(p, k)
max_required = max(max_required, current)
return max_required
def S(m: int) -> int:
if m == 1:
return 1
factors = prime_factors(m)
max_required = 0
for p, k in factors.items():
total_power = 0
n = 0
while total_power < k:
n += 1
temp = n
contribution = 0
while temp >= p:
contribution += temp // p
temp //= p
total_power = contribution
max_required = max(max_required, n)
return max_required
def calculate_S_SL(base: int, power: int) -> int:
base_factors = prime_factors(base)
power_factors = {p: k*power for p, k in base_factors.items()}
sl_result = max(pow(p, k) for p, k in power_factors.items())
return S(sl_result)
def main():
while True:
try:
print("\n请输入两个数字(输入非数字退出):")
base = input("请输入底数n: ")
if not base.isdigit(): break
power = input("请输入幂次m: ")
if not power.isdigit(): break
base = int(base)
power = int(power)
if base <=0 or power <=0:
print("请输入正整数!")
continue
res = calculate_S_SL(base, power)
print(f"S(SL({base}^{power})) = {res}")
except:
print("输入错误")
if __name__ == "__main__":
main()
F:= GF(3^4);
q:=9;
G := Matrix(F, 4, 7, [
1, 1, 1, 1, 1, 0, 0,
0, w^2, w^4, w^6, w^8, 0, 0,
0, w^4, w^8, w^12, w^16, 1, w,
0, w^6, w^12, w^18, w^24, w^2, w^4
]);
C := LinearCode(G);
d := MinimumDistance(C);
Hll:=Hull(C);
C;
d;
Hll;
HermitianTranspose := function(M)
M_T := Transpose(M);
m := Nrows(M_T);
n := Ncols(M_T);
M_H := ZeroMatrix(BaseRing(M), m, n);
for i in [1..m] do
for j in [1..n] do
M_H[i, j] := M_T[i, j]^q;
end for;
end for;
return M_H;
end function;
// 判断MDS
if IsMDS(C) then
"MDS code true";
else
"MDS code false";
end if;
// 判断HermitianSelforthogonal
if IsZero(G*HermitianTranspose (G)) then
"HermitianSelforthogonal code true";
else
"HermitianSelforthogonal code false";
end if;
// 判断HermitianLCD
if IsSingular(G*HermitianTranspose (G)) then
"HermitianLCD code false";
else
"HermitianLCD code true";
end if;
rank:=Rank(G*HermitianTranspose (G));
rank;