把一个素数表达成四个整数的平方和
本帖最后由 mathematica 于 2019-3-13 16:31 编辑很显然解是存在的,剩下的就是写代码的问题了!
(*把素数表达成四个整数的平方和,程序可能有bug*)
Clear["Global`*"];(*Clear all variables*)
(*子函数,根据迭代,输入四个整数,一个素数,得到四个整数,降低四个整数的平方和的大小*)
fun:=Module[{x1,x2,x3,x4,y1,y2,y3,y4,m,u1,u2,u3,u4},
x1=xx[];
x2=xx[];
x3=xx[];
x4=xx[];
m=(x1^2+x2^2+x3^2+x4^2)/p;
If];
(*模m后绝对值不超过m/2*)
y1=Mod;If;
y2=Mod;If;
y3=Mod;If;
y4=Mod;If;
u1=x1*y1+x2*y2+x3*y3+x4*y4;
u2=x1*y2-x2*y1+x3*y4-x4*y3;
u3=x1*y3-x3*y1+x4*y2-x2*y4;
u4=x1*y4-x4*y1+x2*y3-x3*y2;
u1=Abs;
u2=Abs;
u3=Abs;
u4=Abs;
Print[{u1,u2,u3,u4,(u1^2+u2^2+u3^2+u4^2)/p}];
Return[{u1,u2,u3,u4}]
]
p=NextPrime;(*被表达成四平方和的素数*)
x2=1;(*初始值*)
x3=1;
x4=0;
(*一定要找到勒让德符号等于1的,这样才能保证找到x1的值*)
While!=1,x2=x2+1];
x1=PowerMod[-(x2^2+x3^2+x4^2),1/2,p];(*有限域开平方根得到x1的值*)
If;
inp={x1,x2,x3,x4};
While!=p,inp=fun]
{2788746277617240794317,6,2,0,77771058009240166637}
{394865994220668595295,216,72,0,1559191533918770845}
{98903462170845390482,54648,18216,0,97818948293798452}
{8599745275310222815,55249128,18416376,0,739556188002205}
{2161938692729107297,642436860384,214145620128,0,46739789111197}
{474232184858022618,29715916977061920,9905305659020640,0,2258773159572}
{101187808261202479,112138741018396488,120697814613208710,9905305659020640,374801473105}
{53114403389536044,8233295348868331,7534650454384885,45043482096771590,49746132366}
{13860512533272035,9638617004223700,11027560405173174,9789878005938350,5024655453}
{2591675315436957,4341372920184228,481874603117950,4823975828516944,490672457}
{2723542341856752,3638553890845146,615354662129160,1880024078389688,245699092}
{582392340938173,2220245268383094,426273512038452,21575504013614,54508445}
{665005506809903,863992044909728,1497280747238039,617229686741905,38115367}
{130539633766375,317393334189096,615342520427249,357150889656893,6239823}
{184572705350540,333038715140273,307244129941609,52359099244759,2421223}
{96469421038424,64955390665857,222487640235921,120679318734440,775898}
{35538833053807,70483726061193,31511638716165,68375085602332,118991}
{52127944064440,29784163746704,2004787993209,10067862862913,37098}
{36676527348765,18345822861400,30754320794154,2633415588868,26345}
{8049488371896,5589046640796,19314117934191,10345682337182,5761}
{5127064237247,11940448524783,6184493916624,5088313701944,2330}
{1883746011250,1902447110777,3864830143676,6260613701254,613}
{832897246917,864132527400,3627566446794,1048960831138,157}
{1461118206527,490990145867,648475205685,896405137663,36}
{232765546049,42313574336,60453717284,200935586858,1}
这个结果告诉我们
\
有没有把一个整数表达成19个非负立方和的算法呢?
最近研究表达成平方,表达成四平方和,感觉真有意思! 问题来了,一个素数,能被表达成多少种四平方和,
如果p=x1^2+x2^2+x3^2+x^4
如果0<=x1<=x2<=x3<=x4
那么有多少种表达呢?
我记得4k+1形素数,只有一种两平方和的表达,那么四平方是啥情况? mathematica 发表于 2019-3-13 16:44
问题来了,一个素数,能被表达成多少种四平方和,
如果p=x1^2+x2^2+x3^2+x^4
如果0
那你需要去研究一下Hamilton四元数环 hujunhua 发表于 2019-3-14 10:24
那你需要去研究一下Hamilton四元数环
有关系吗?
我就好奇多少种,我玩数论就是为了满足自己的好奇心 表法数问题
任给一个正整数都是可以表为四个平方数之和。进一步,给定一个正整数,表示成为四个平方数的不同表示法有多少种?这问题已由雅可比给出了解答。
https://baike.baidu.com/item/%E5%8D%8E%E6%9E%97%E9%97%AE%E9%A2%98/2604471
雅克比的回答在哪里? https://en.wikipedia.org/wiki/Lagrange%27s_four-square_theorem#cite_note-10
解数好像在这里
https://en.wikipedia.org/wiki/Jacobi%27s_four-square_theorem 本帖最后由 mathematica 于 2019-3-14 12:51 编辑
Randomized algorithms in number theory
这个是谈及算法的理论
https://onlinelibrary.wiley.com/doi/abs/10.1002/cpa.3160390713
谁能下载这篇论文传到论坛QQ群里?
https://mathoverflow.net/questions/104322/efficient-computation-of-integer-representation-as-a-sum-of-three-squares
四元拉格朗日恒等式是四元数领域中的一个重要恒等式,它在四元数的运算和相关理论中有重要作用。
内容
对于任意两个四元数q_1 = x_1 + x_2i + x_3j + x_4k和q_2 = y_1 + y_2i + y_3j + y_4k,四元拉格朗日恒等式表述为\vert q_1q_2\vert^2=\vert q_1\vert^2\vert q_2\vert^2。
展开形式
将其展开可得:
(x_1y_1 - x_2y_2 - x_3y_3 - x_4y_4)^2+(x_1y_2 + x_2y_1 + x_3y_4 - x_4y_3)^2+(x_1y_3 + x_3y_1 + x_4y_2 - x_2y_4)^2+(x_1y_4 + x_4y_1 + x_2y_3 - x_3y_2)^2=(x_1^2 + x_2^2 + x_3^2 + x_4^2)(y_1^2 + y_2^2 + y_3^2 + y_4^2)。
这个恒等式表明了两个四元数乘积的模的平方等于它们各自模的平方的乘积,在证明一些与四元数相关的不等式以及研究四元数的性质等方面都有广泛的应用。 u1=x1y1+x2y2+x3y3+x4y4;
u2=x1y2-x2y1+x3y4-x4y3;
u3=x1y3-x3y1+x4y2-x2y4;
u4=x1y4-x4y1+x2y3-x3y2;
有什么规律?
页:
[1]