Giả sử chúng ta có một dãy số gọi là bn, dãy số này được biểu diễn bằng quan hệ lặp lại như b1 =1 và bn + 1 / bn =2n. Chúng ta phải tìm giá trị của log2 (bn) với n cho trước.
Vì vậy, nếu đầu vào là 6, thì đầu ra sẽ là 5 là log2 (bn) =(n * (n - 1)) / 2 =(6 * (6-1)) / 2 =15
Chúng ta có thể giải quyết vấn đề này bằng cách giải quyết mối quan hệ này như sau -
b n + 1 / b n =2 n
b n / b n-1 =2 n-1
…
b 2 / b 1 =2 1 , Nếu chúng ta nhân tất cả các giá trị trên, chúng ta có thể nhận được
(b n + 1 / b n ). (b n / b n-1 ) …… (b 2 / b 1 ) =2 n + (n-1) + ………. + 1
Vì vậy, b n + 1 / b 1 =2 n (n + 1) / 2
Như 1 + 2 + 3 + ………. + (n-1) + n =n (n + 1) / 2
Vì vậy, b n + 1 =2 n (n + 1) / 2 * b 1 ; Chúng tôi đang giả định rằng giá trị ban đầu b 1 =1
Vì vậy, b n + 1 =2 n (n + 1) / 2
Sau khi thay (n + 1) cho n, chúng ta nhận được,
b n =2 n (n-1) / 2
Bằng cách ghi nhật ký cả hai bên, chúng tôi nhận được,
nhật ký 2 (b n ) =n (n-1) / 2
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
def add_upto_n(n): res = (n * (n - 1)) / 2 return res n = 6 print(int(add_upto_n(n)))
Đầu vào
6
Đầu ra
15