"(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函数的表单
问题来自于尝试将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]]