函数randint()不返回整数

时间:2017-01-03 14:11:00

标签: python random int sage

我在Python中使用整数写入时遇到了一个奇怪的问题(我在Sage工作)

我首先尝试运行代码

m=7
m.bits()

那里的一切都很好。然后,我想用随机整数做这个。因此,我试图运行代码

import random
m=randint(2,10)
m.bits()

这就是我收到错误的地方" AttributeError:' int'对象没有属性' bits'"好像函数randint没有返回一个整数。我设法通过

强制它成为一个整数
m=m+0

然而,我仍然想知道为什么第一次写作不起作用。我不得不说我正在编写在线圣人,即使我不认为这应该是一个问题。

提前致谢!

1 个答案:

答案 0 :(得分:1)

对于随机Sage整数(使用各种分布),请使用ZZ.random_elementdoc here)。试试this example

a = ZZ.random_element(2,10)
a.bits()

我已经开放Trac 22131来澄清这个问题;一个人不应该做这个精心设计的事情,在顶层可能有一个random_integer功能。 (例如,有一个random_prime。)