In ra 1000 số cho PI (hoặc bao nhiêu tùy thích)



  • Có bác nào thử giải bài toán này chưa ạ? :D

    Ta biết 1 vài số đầu tiên của Pi là như sau:

    In [19]: math.pi
    Out[19]: 3.141592653589793
    

    Có bạn nào đã thử in ra 1000 (hoặc bao nhiêu tùy ý) số đằng sau 3. chưa ? :D

    Đây ko phải bài tập về nhà của mình đâu nhé, chỉ là bài tập hay muốn chia sẻ với mọi người thôi :)) (ứng dụng thực tế chắc là ko có nhưng khá hay)



  • def make_pi():
        q, r, t, k, m, x = 1, 0, 1, 1, 3, 3
        for j in range(50000):
            if 4 * q + r - t < m * t:
                yield m
                q, r, t, k, m, x = 10*q, 10*(r-m*t), t, k, (10*(3*q+r))/t - 10*m, x
            else:
                q, r, t, k, m, x = q*k, (2*q+r)*x, t*x, k+1, (q*(7*k+2)+r*x)/(t*x), x+2
    
    
    digits = make_pi()
    pi_list = []
    my_array = []
    
    for i in make_pi():
        my_array.append(str(i))
    
    my_array = my_array[:1] + ['.'] + my_array[1:]
    big_string = "".join(my_array)
    print "%s" % big_string
    

    10527 số sau "3.14", CPU lên 100% luôn :smile:
    Ref: https://pythonadventures.wordpress.com/2012/04/13/digits-of-pi-part-2/


Hãy đăng nhập để trả lời
 

Có vẻ như bạn đã mất kết nối tới Cộng đồng Python Việt Nam, vui lòng đợi một lúc để chúng tôi thử kết nối lại.