這篇文章給大家分享的是有關(guān)PHP如何將一個(gè)正整數(shù)擴(kuò)大一千倍的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
成都創(chuàng)新互聯(lián)公司專注于丹江口網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供丹江口營(yíng)銷型網(wǎng)站建設(shè),丹江口網(wǎng)站制作、丹江口網(wǎng)頁(yè)設(shè)計(jì)、丹江口網(wǎng)站官網(wǎng)定制、成都小程序開發(fā)服務(wù),打造丹江口網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供丹江口網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
php是一個(gè)嵌套的縮寫名稱,是英文超級(jí)文本預(yù)處理語(yǔ)言,它的語(yǔ)法混合了C、Java、Perl以及php自創(chuàng)新的語(yǔ)法,主要用來(lái)做網(wǎng)站開發(fā),許多小型網(wǎng)站都用php開發(fā),因?yàn)閜hp是開源的,從而使得php經(jīng)久不衰。
如何最高效率的將一個(gè)正整數(shù)擴(kuò)大一千倍?
當(dāng)這個(gè)問(wèn)題被拋給人腦的時(shí)候,接受過(guò)優(yōu)秀的九年義務(wù)教育的我們稍加思索就能給出一個(gè)調(diào)皮而又不失大師風(fēng)范的答案:添三個(gè)零就行了~
但是當(dāng)這個(gè)問(wèn)題交給程序員用代碼解決的時(shí)候,問(wèn)題就要從編程的角度去考慮。我作為phper
第一時(shí)間想到的方案分別是
方案1:在數(shù)字末尾粘連字符串 “000”
方案2:將原數(shù)字簡(jiǎn)單的乘以 1000
當(dāng)我把這個(gè)問(wèn)題丟給我的朋友的時(shí)候,他告訴我:
方案1肯定不行!你應(yīng)該采用方案2,但是如果你足夠雞賊的話,你應(yīng)該采用正整數(shù) X 1024 - 正整數(shù) X 24
!
因?yàn)橛?jì)算機(jī)是二進(jìn)制,當(dāng)你告訴他要乘以1000的時(shí)候,他會(huì)進(jìn)行正整數(shù) X 512 + 正整數(shù) X 256 + 正整數(shù) X 128 + 正整數(shù) X 128 + 正整數(shù) X 64 + 正整數(shù) X 32 + 正整數(shù) X 8
,一直累加到湊齊 正整數(shù)的 1000 倍 為止。而運(yùn)算2的10次方
要比那一串加號(hào)更快接近結(jié)果。
大佬的這段話很快打動(dòng)了我。為了踐行大佬的真知,證明大佬的闡述對(duì)我猶如醍醐灌頂般點(diǎn)醒夢(mèng)中人,我迅速寫出了一小段方法,將一個(gè)隨機(jī)正整數(shù)擴(kuò)大1000倍的算法用三種不同的方法分別跑 一千萬(wàn)次,查看各個(gè)方法運(yùn)行的效率(使用框架:laravel)
// 圖表內(nèi)容 $headers = ['次數(shù)', '方案1:拼接法', '方案2:乘1000', '方案3:乘以 1024']; $data = [ [0=>'第一次'], [0=>'第二次'], [0=>'第三次'] ]; // 每個(gè)方法執(zhí)行三次 for ($count = 0; $count < 3; $count ++) { // 生成變量名 : plan1start1 $start = Carbon::now()->getPreciseTimestamp(); for ($i = 0; $i < 10000000; $i ++) { $integer = rand(1, 999); $result = (int)($integer . '000'); } $end = Carbon::now()->getPreciseTimestamp(); $data[$count][] = ($end - $start)/1000000 . '秒'; } for ($count = 0; $count < 3; $count ++) { $start = Carbon::now()->getPreciseTimestamp(); for ($i = 0; $i < 10000000; $i ++) { $integer = rand(1, 999); $result = $integer * 1000; } $end = Carbon::now()->getPreciseTimestamp(); $data[$count][] = ($end - $start)/1000000 . '秒'; } for ($count = 0; $count < 3; $count ++) { $start = Carbon::now()->getPreciseTimestamp(); for ($i = 0; $i < 10000000; $i ++) { $integer = rand(1, 999); $result = $integer * 1024 - $integer * 24; } $end = Carbon::now()->getPreciseTimestamp(); $data[$count][] = ($end - $start)/1000000 . '秒'; } $this->table($headers, $data);
將這段代碼運(yùn)行多次后均得到一個(gè)較為穩(wěn)定的結(jié)果:
感謝各位的閱讀!關(guān)于“PHP如何將一個(gè)正整數(shù)擴(kuò)大一千倍”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
文章題目:PHP如何將一個(gè)正整數(shù)擴(kuò)大一千倍
文章鏈接:http://muchs.cn/article18/jcjidp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、移動(dòng)網(wǎng)站建設(shè)、動(dòng)態(tài)網(wǎng)站、用戶體驗(yàn)、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)