python完美立方 列舉 完美立方

2021-10-19 21:17:09 字數 1916 閱讀 8973

1. 列舉

列舉是基於逐個嘗試答案的一種問題求解策略。

2. 完美立方

形如$a^3 = b^3 + c^3 + d3$的等式被稱為完美立方等式。例如$123 = 6^3 + 8^3 + 10^3$

問題:編寫程式,對任給的正整數n(n<=100),尋找所有的四元組(a, b, c, d),使得$a^3 = b^3 + c^3 + d^3$,其中a,b,c,d大於1,小於等於n,且b<=c<=d。

輸入:乙個正整數n(n<=100)。

輸出:每行輸出乙個完美立方。輸出格式為cube = a,triple = (b, c, d)。

求解:備註:判斷條件邊界很重要

方法一:

#!/usr/bin/env python

# _*_ coding: utf-8 _*_

import sys

import math

# n = sys.ar**[1]

n = 24

i = 0

for a in xrange(2, n + 1):

for b in xrange(2, n):

for c in xrange(b, n):

for d in xrange(c, n):

i += 1

if math.pow(a, 3) == math.pow(b, 3) + math.pow(c, 3) + math.pow(d, 3):

print 'cube = %d, triple = (%d, %d, %d)' % (a, b, c, d)

print '%d iterations.' % i

輸出cube = 6, triple = (3, 4, 5)

cube = 12, triple = (6, 8, 10)

cube = 18, triple = (2, 12, 16)

cube = 18, triple = (9, 12, 15)

cube = 19, triple = (3, 10, 18)

cube = 20, triple = (7, 14, 17)

cube = 24, triple = (12, 16, 20)

46552 iterations.

方法二#!/usr/bin/env python

# _*_ coding: utf-8 _*_

import sys

import math

# n = sys.ar**[1]

n = 24

i = 0

for a in xrange(2, n + 1):

for b in xrange(2, a):

for c in xrange(b, a):

for d in xrange(c, a):

i += 1

if math.pow(a, 3) == math.pow(b, 3) + math.pow(c, 3) + math.pow(d, 3):

print 'cube = %d, triple = (%d, %d, %d)' % (a, b, c, d)

print '%d iterations.' % i

輸出cube = 6, triple = (3, 4, 5)

cube = 12, triple = (6, 8, 10)

cube = 18, triple = (2, 12, 16)

cube = 18, triple = (9, 12, 15)

cube = 19, triple = (3, 10, 18)

cube = 20, triple = (7, 14, 17)

cube = 24, triple = (12, 16, 20)

12650 iterations.

從上面可以看出列舉的邊界不同,效率會差將近三倍。

參考資料

列舉 完美立方

列舉是基於逐個嘗試答案的一種問題求解策略。形如a 3 b3 c3 d3的等式被稱為完美立方等式。例如123 63 83 10 3 問題 編寫程式,對任給的正整數n n 100 尋找所有的四元組 a,b,c,d 使得a3 b3 c3 d 3 其中a,b,c,d大於1,小於等於n,且b c d。輸入 乙...

列舉 完美立方

description 形如 a3 b3 c3 d3的等式被稱為完美立方。例如 123 63 83 103。編寫乙個程式,對任給的正整數 n n 100 尋找所有的四元組 a,b,c,d 使得a3 b3 c3 d3,其中a,b,c,d大於1,小於等於n,且b c d。input 多組測試資料,每組測...

列舉 完美立方

題目描述 形如 a3 b 3 c 3 d 3的等式被稱為完美立方。例如 12 3 6 3 8 3 10 3。編寫乙個程式,對任給的正整數 n 100 尋找所有的四元組 a,b,c,d 使得 a 3 b 3 c 3 d 3,其中 a,b,c,d a,b,c,d 大於 1,小於 等n,且 b c d。輸...