2021-01-17 第3題 尋找平方數(shù)

第3題

數(shù)學(xué)模型:將這個(gè)整數(shù)記為a壳繁,a+100,a+268都是平方數(shù)荔棉,求a的值闹炉。

from math import sqrt
#自定義函數(shù),判斷數(shù)字x是否為一個(gè)完全平方數(shù)润樱,是完全平方數(shù)返回True渣触,否則返回False
def perfect_square(x):
    for i in range(1,int(sqrt(x))+1):
        if i**2 == x:
            return True
            break
    else:
        return False

i = 0
while 1:
    if perfect_square(i+100) == True and perfect_square(i+268) == True:
        print(i)
        break
    else:
        i += 1

運(yùn)行結(jié)果:


運(yùn)行結(jié)果

反思:這個(gè)算法的運(yùn)行效率是比較慢的,因?yàn)樽兞縤的值是從0壹若,1嗅钻,2,3店展,4养篓,…步長為1遞增的,如果能將步長加大赂蕴,使其按照i=1柳弄,4,9概说,16碧注,25…的方式遞增就可以減少算量了,今天暫時(shí)想到這里糖赔,以后發(fā)現(xiàn)好的算法再更新萍丐。


更新內(nèi)容:

今天換了一個(gè)思路考慮這個(gè)問題,新建一個(gè)列表存放平方數(shù)
[1放典,4碉纺,9,16……]刻撒,如果a+100骨田,和a+268同在這個(gè)列表中,則輸出a的值声怔,為了進(jìn)一步減少算量态贤,將列表的前幾項(xiàng)去掉,因?yàn)閍+100必須大于等于0醋火,所以列表從100開始悠汽,即[100箱吕,121,144柿冲,225……]

  • 解法2源代碼:
#解法2
n = 10
square = []
while 1:
    m = n**2
    square.append(m)
    if m-168 in square:
        print("這個(gè)數(shù)是:",m-268)
        break
    n += 1
  • 運(yùn)行結(jié)果:
這個(gè)數(shù)是: 21

在調(diào)試程序中突發(fā)奇想茬高,將break注釋掉了,結(jié)果發(fā)現(xiàn)這樣的數(shù)字還有

  • 注釋掉break的運(yùn)行結(jié)果:
這個(gè)數(shù)是: 21
這個(gè)數(shù)是: 261
這個(gè)數(shù)是: 1581

Process finished with exit code -1

最后的結(jié)果是多少現(xiàn)在還不知道假抄,這三個(gè)數(shù)很快就被算出來了怎栽,等了很久沒有出現(xiàn)新的數(shù)字,因此強(qiáng)行停止了循環(huán)宿饱。等學(xué)完了迭代器與生成器后再來更新程序熏瞄,看看有沒有新的發(fā)現(xiàn)。


第3次更新:

這一次找到了新算法谬以,而不是依靠盲目循環(huán)强饮,思考方法如下:

設(shè)a+100=i2,a+268=j2 为黎,且j>i>10邮丰,根據(jù)平方差公式可知,j2 -i2 =168铭乾,即(j-i)(j+i)=168柠座,說明(j-i),(j+i)是168的兩個(gè)因數(shù)片橡,且(j+i)>13>(j-i)妈经,所以在程序設(shè)計(jì)時(shí),改用將168因數(shù)分解的策略捧书,分解后的兩個(gè)因數(shù)m,n分別賦值給(j+i)=m和(j-i)=n吹泡,因此i=(m-n)/2,j=(m+n)/2经瓷,因此a=((m-n)/2)2 -100或者a=((m+n)/2)2 -268

  • 解法3源代碼:
from math import sqrt

def iseven(x):
    return True if x % 2 == 0 else False

def factor(x):
    lst = []
    for i in range(2,int(sqrt(x))+1):
        if x % i == 0:
            m = i
            n = x // i
            lst.append((m,n))
    return lst

if __name__ == '__main__':
    lst = factor(168)
    for i in lst:
        t = i[1]-i[0]
        if t > 10 and iseven(t) == True:
            a = (t//2)**2 -100
            print(a)
  • 運(yùn)行結(jié)果:
1581
261
21
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末爆哑,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子舆吮,更是在濱河造成了極大的恐慌揭朝,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件色冀,死亡現(xiàn)場(chǎng)離奇詭異潭袱,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)锋恬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門屯换,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事彤悔〖巫ィ” “怎么了?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵晕窑,是天一觀的道長抑片。 經(jīng)常有香客問我,道長杨赤,這世上最難降的妖魔是什么敞斋? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮望拖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘挫鸽。我一直安慰自己说敏,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布丢郊。 她就那樣靜靜地躺著盔沫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪枫匾。 梳的紋絲不亂的頭發(fā)上架诞,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音干茉,去河邊找鬼谴忧。 笑死,一個(gè)胖子當(dāng)著我的面吹牛角虫,可吹牛的內(nèi)容都是我干的沾谓。 我是一名探鬼主播,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼戳鹅,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼均驶!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起枫虏,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤妇穴,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后隶债,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體腾它,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年死讹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了携狭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡回俐,死狀恐怖逛腿,靈堂內(nèi)的尸體忽然破棺而出稀并,到底是詐尸還是另有隱情,我是刑警寧澤单默,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布碘举,位于F島的核電站,受9級(jí)特大地震影響搁廓,放射性物質(zhì)發(fā)生泄漏引颈。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一境蜕、第九天 我趴在偏房一處隱蔽的房頂上張望蝙场。 院中可真熱鬧,春花似錦粱年、人聲如沸售滤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽完箩。三九已至,卻和暖如春拉队,著一層夾襖步出監(jiān)牢的瞬間弊知,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來泰國打工粱快, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留秩彤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓事哭,卻偏偏與公主長得像呐舔,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子慷蠕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 什么是算法的復(fù)雜度 算法復(fù)雜度珊拼,即算法在編寫成可執(zhí)行程序后,運(yùn)行時(shí)所需要的資源流炕,資源包括時(shí)間資源和內(nèi)存資源澎现。 一個(gè)...
    儒生閱讀 1,728評(píng)論 0 2
  • 算法思想貪心思想雙指針排序快速選擇堆排序桶排序荷蘭國旗問題二分查找搜索BFSDFSBacktracking分治動(dòng)態(tài)...
    第六象限閱讀 3,095評(píng)論 0 0
  • 改善深層神經(jīng)網(wǎng)絡(luò):超參數(shù)調(diào)試、正則化以及優(yōu)化 一每辟、第一周-深度學(xué)習(xí)的實(shí)用層面 1.訓(xùn)練剑辫、驗(yàn)證、測(cè)試集 通常在進(jìn)行深...
    donald_b3e3閱讀 935評(píng)論 1 0
  • 課程布置的作業(yè)渠欺,遇事不決妹蔽,度娘解決~ 一、請(qǐng)談?wù)勀銓?duì)算法復(fù)雜度的理解? 算法復(fù)雜度是指算法在編寫成可執(zhí)行程序后胳岂,運(yùn)...
    生信擺渡閱讀 503評(píng)論 0 1
  • 夜鶯2517閱讀 127,720評(píng)論 1 9