求助,怎么用Mathematica画图
mathematica吧
全部回复
仅看楼主
level 5
codrw 楼主
求解素数41的原根
PrimitiveRootList[41]
结果{6, 7, 11, 12, 13, 15, 17, 19, 22, 24, 26, 28, 29, 30, 34, 35}
素数原根在模p下是恰好两两配对的
a*b=1 (mod p)
PowerMod[{6, 11, 12, 13, 17, 22, 26, 34}, -1, 41]
结果{7, 15, 24, 19, 29, 28, 30, 35}
假如我们将素数的所有原根按照首尾顺序排列成一个圆圈,然后将{ai,bi}连接起来,怎么用Mathematica的相关函数作图
2021年06月22日 01点06分 1
吧务
level 10
Graph自动排的不好看,还是GraphicsComplex好使
l=Length@x;
rule=First/@PositionIndex@x;
Graphics@GraphicsComplex[
CirclePoints@l,
Line@Append[Append[1]@Range@l][Transpose@{x,y}/.rule]
]
2021年06月22日 06点06分 3
得到的正多边形边数应该是16,然后再连接{ai,bi}
2021年06月22日 07点06分
@codrw 我得到的正多边形是16边形。
2021年06月22日 20点06分
吧务
level 10
x和y是你那两个列表
(代码已发,过会儿应该会显示出来)
2021年06月22日 06点06分 4
用Mathematica实现原根的两两配对,我的做法是手动输入,太麻烦了
2021年06月22日 08点06分
level 5
codrw 楼主
GraphPlot[{6 -> 7, 7 -> 11, 11 -> 12, 12 -> 13, 13 -> 17, 17 -> 19,
19 -> 22, 22 -> 24, 24 -> 26, 26 -> 28, 28 -> 29, 29 -> 30,
30 -> 34, 34 -> 35, 35 -> 6}, VertexLabeling -> True]
应该是先画出这个正十六边形,实现列表的自动输入
2021年06月22日 08点06分 5
然后连接{6,7}{11,15}{12,24}{13,19}{17,29}{22,28}{26,30}{34,35}
2021年06月22日 08点06分
level 5
codrw 楼主
图形我已经得到了,我要的是输入任意一个素数,怎样自动画出它的原根及倒数原根的连线
手动输入代码
GraphPlot[
{6 -> 7, 7 -> 11, 11 -> 12, 12 -> 13, 13 -> 15, 15 -> 17, 17 -> 19,
19 -> 22, 22 -> 24, 24 -> 26, 26 -> 28, 28 -> 29, 29 -> 30,
30 -> 34, 34 -> 35, 35 -> 6, 6 -> 7, 11 -> 15, 12 -> 24, 13 -> 19,
17 -> 29, 22 -> 28, 26 -> 30, 34 -> 35}, VertexLabeling -> True,
Method -> "CircularEmbedding"]
2021年06月22日 13点06分 6
吧务
level 10
x = PrimitiveRootList[41]
y = PowerMod[x, -1, 41]
2021年06月22日 20点06分 7
感谢小吧主的作答,这个图形能不能标注顶点呢
2021年06月22日 23点06分
@codrw 自己在GraphicsComplex第二元素里加想要的图元就行,比如Text、Labeled、Tooltip啥的。序号已经存在rule变量里了
2021年06月23日 00点06分
还是不太懂,我试了试,但加的不对
2021年06月23日 01点06分
level 7
x=PrimitiveRootList[41]
y=PowerMod[x,-1,41]
l=Length@x
GraphPlot[Flatten@{Thread[Rule[x,RotateLeft[x]]],Cases[Thread[Rule[x,y]],Rule[x_,y_]/;x<y]},PlotTheme->"ClassicDiagram",VertexCoordinates->Table[{Cos[2Pi i/l],Sin[2Pi i/l]},{i,1,l}]]
想要每个点按顺序排列好像只能明确的指定点的坐标,暂时没发现别的方法
2021年06月23日 12点06分 8
你的代码输入到Mathematica里,显示有误
2021年06月23日 12点06分
1