小编Zeu*_*eer的帖子

如何将较高的值减少到 1 并从右到左排序

我想制作一个 python 程序,它可以快速减少数组/列表中大于 1 的数字,并将其放在它前面的空白位置。假设我们有:

li = [4,1,0,0,0,1,3,0]   
Run Code Online (Sandbox Code Playgroud)

我们会得到:

rtr = [1,1,0,1,1,1,1,0]
Run Code Online (Sandbox Code Playgroud)

注意 4 是如何变成 1 的,因为它已经在左边了,然后 3 在已经被取走的 1 之前被分成了 2 个位置。谁能帮我解决这个问题?

python sorting list

1
推荐指数
1
解决办法
33
查看次数

有没有办法增加pythons的无穷大限制?

我正在做https://projecteuler.net/problem=57,在那里我得到分子和分母,如果分子比分母长,我会在总数中加一。

然而,在某一时刻(n=805 以上),分子和分母变得如此之大,以至于 python 将它们转换为无穷大。如果你想测试它,这是我的代码。

def sqrt_2(max_iteration, total = 0, previous_numerator = 1, previous_denominator = 2, iteration = 1):
    
    numerator_test = previous_numerator + previous_denominator
    denominator_test = previous_denominator
    print(numerator_test, denominator_test, numerator_test / denominator_test)
    if len(str(numerator_test)) > len(str(denominator_test)):
        total += 1
    
    if iteration == max_iteration:
        return total
    
    next_value_numerator = 1 * previous_denominator
    next_value_denominator = int(( 2 + (previous_numerator / previous_denominator) ) * previous_denominator)
    
    return sqrt_2(max_iteration, total, next_value_numerator, next_value_denominator, iteration + 1)
            


print("\n", sqrt_2(806))
Run Code Online (Sandbox Code Playgroud)

有没有办法增加这个无穷大的限制?806真的很接近1000。如果它与IDE / Python版本有什么关系,我使用的是Spyder 5.0和python 3.7。

提前致谢!

python

1
推荐指数
1
解决办法
52
查看次数

标签 统计

python ×2

list ×1

sorting ×1