在Sag中将数字表转换为qary表示

2024-10-02 10:27:55 发布

您现在位置:Python中文网/ 问答频道 /正文

"(n,p^n)"
n=2
p=3
p.is_prime()
n in ZZ
list1=list(IntegerRange(0,(p^n)-1))
V1=vector(GF(3),list1)
print V1
list1.digits(base=p,padto=n)

正在尝试获取输出:

[(0, 0),(0, 1),(0, 2),(1, 0),(1, 1),(1, 2),(2, 0),(2, 1),(2, 2)]

我不知道如何使用列表并将其转换为可以使用.digits函数的形式


Tags: in列表baseisprimelistv1print
1条回答
网友
1楼 · 发布于 2024-10-02 10:27:55

问题来自于尝试应用digits方法 而不是列表中的每个元素

已经定义

sage: n = 2
sage: p = 3

回想一下range(a, b)IntegerRange(a, b)两者 包括a但排除b

sage: list1 = list(IntegerRange(0, p^n))

我们可以观察到list1

sage: list1
[0, 1, 2, 3, 4, 5, 6, 7, 8]

并将digits方法应用于list1的元素

sage: [ZZ(x).digits(base=p, padto=n) for x in list1]
[[0, 0], [1, 0], [2, 0], [0, 1], [1, 1], [2, 1], [0, 2], [1, 2], [2, 2]]

然后可能反转这些数字:

sage: [ZZ(x).digits(base=p, padto=n)[::-1] for x in list1]
[[0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2]]

相关问题 更多 >

    热门问题