<p>有人问过这个问题,但不是这样问的。对于lt&n;=10000平方根的程序,lt&n。在</p>
<p>我一直想在茱莉亚身上这样做,但我不知道怎么做。主要是因为它处理无理数(如果x不是完全平方,sqrt(x)是无理的,例如sqrt(2)=1.414213…)。所以我认为我不能使用rational类。在</p>
<p>这里说<a href="https://docs.julialang.org/en/latest/manual/integers-and-floating-point-numbers/#Arbitrary-Precision-Arithmetic-1" rel="nofollow noreferrer">https://docs.julialang.org/en/latest/manual/integers-and-floating-point-numbers/#Arbitrary-Precision-Arithmetic-1</a>Julia可以用大浮点来做任意精度的算术。它们似乎不够准确。在</p>
<p>我也尝试过使用PyCall和Python中的Decimals包(来自Julia),但是出现了一些奇怪的错误(如果有用的话,我可以发布它们)。在</p>
<p>这是我的Python程序。我的问题是朱莉娅怎么做?在</p>
<pre><code>def continuedFractionSquareRoots():
'''
For each number up to 100, get the length of the continued fraction
of the square root for it.
'''
decimal.getcontext().prec = 210 # Need lots of precision for this problem.
continuedFractionLengths = []
for i in range(1, 101):
# For perfect squares, the period is 0
irrationalNumber = decimal.Decimal(i).sqrt()
if irrationalNumber == int(irrationalNumber):
continue
continuedFractionLength = 0
while True:
intPart = irrationalNumber.to_integral_exact(rounding=decimal.ROUND_FLOOR)
if continuedFractionLength == 0:
firstContinuedFractionTimes2 = int(intPart*2)
continuedFractionLength += 1
if intPart == firstContinuedFractionTimes2:
# Have reached the 'period' end for this fraction
break
fractionalPart = irrationalNumber - intPart
irrationalNumber = 1 / fractionalPart
continuedFractionLengths.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>(continuedFractionLength)
return continuedFractionLengths
</code></pre>
<p>如你所见,我需要一种计算精确平方根的方法,同时也需要一种得到整数部分的方法。这些都是真的,除了很多很多的精度!在</p>
<p>我不想给茱莉亚回个小密码,因为我不想给我发一个小密码!但在这里,它起作用了。正如我在下面的评论中所说的,我使用setprecision函数将精度设置为一个较高的值,它可以工作。根据经验,我得到了711的值。在</p>
^{pr2}$
<p>所以不管怎样,用户2357112解决了,非常感谢。在</p>