我試圖在書中做一個問題,但我不知道如何。問題是,Write函數geometric()將整數列表作爲輸入,如果列表中的整數形成幾何序列,則返回True。如果比率a1/a0,a2/a1,a3/a2,a4/a3,...,a-a0,a1,a2,a3,a4,...,an- an-1/an-2都是平等的。python幾何序列
def geometric(l):
for i in l:
if i*1==i*0:
return True
else:
return False
我真的不知道如何開始這個,我完全畫空白。任何幫助,將不勝感激。
謝謝!
例如:
geometric([2,4,8,16,32,64,128,256])
>>> True
geometric([2,4,6,8])`
>>> False
是作爲獎勵,我可以通過避免做任何部門(這可能在理論上,導致浮點四捨五入問題)堅持純粹的整數運算!我喜歡。 – Ric 2013-02-25 07:35:53
但是你在'all()'中放鬆了短路嗎?你必須計算所有比率。 – Ric 2013-02-25 07:41:11
不,所有'應該照顧短路。嘗試'幾何(xrange(1,1000000000))'......立即運行。 – pyrospade 2013-02-25 07:53:36