PHP經典演算法百錢買小雞

2021-07-11 12:50:48 字數 1244 閱讀 3780

遇到一道有趣的題,並計算2種方法的效率,發現如果窮舉所有組合竟高達1000000次排列~所以簡化到了600次。所以,你的乙個條件,或者乙個運算,可能會提高幾千倍的效率!

<?php 

header("content-type:text/html;charset=utf-8");

//百錢買小雞

/*公雞5文錢1只,母雞三文錢乙隻,小雞一文錢三隻。

現在用100文錢共買了100隻雞,

問這100隻雞中,公雞,母雞,小雞各是多少只?

*/$start = microtime(true);

//寫法一 窮舉所有排列:計算1000000次。

for($g = 1; $g

<= 100; $g++)

//計算排列組合次數

if($g == 100 && $m == 100 && $x == 100)}}

}echo"";

$end = microtime(true);

echo

"函式執行時間為:".($end - $start);//計算函式執行時間。

echo"";

//寫法二:簡化組合.

$start = microtime(true);

for($g = 1; $g

< 20; $g++)

//計算排列組合次數

if($g == 19 && $m == 33)

}}echo"";

$end = microtime(true);

echo

"函式執行時間為:".($end - $start);//計算函式執行時間。

echo"";

?>

輸出結果1:

公,母,雛,分別為:4 18 78

公,母,雛,分別為:8 11 81

公,母,雛,分別為:12 4 84

排列次數為:1000000

函式執行時間為:0.10584402084351

再來看一下第二套演算法~整整差了一千倍~雖說是毫秒。

輸出結果2:

公,母,雛,分別為:4 18 78

公,母,雛,分別為:8 11 81

公,母,雛,分別為:12 4 84

排列次數為:627

函式執行時間為:0.00016307830810547

Java經典題目 百錢買百雞

package com.sxt.pratice 百錢買白雞 100文買100隻雞 公雞5文1只,母雞3文乙隻,雛雞1文3只,100文買100隻雞,每個雞的品種都得有,總共有幾種買法 int money 100 int total 100 x y z 100 總數相加為100 5x 3y z 3 10...

百錢買百雞

這是個很簡單的邏輯,本來沒有什麼太多值得分享的。並且實現程式網上隨處可見,鄙人也並未提出更高深的意見。在閒暇看書時,對比了以下兩種實現。發現,其 實數學計算的不定性,可利用計算機的不斷重複 篩選 得到想要結果 如第一種實現 但是,顯而易見的是,第一種實現有個複雜度的問題。而第二種實現,是在數學計算推...

百錢買百雞

百錢買百雞。中國古代數學家張丘建在他的 算經 中提出了著名的 百錢買百雞 問題 雞翁一,值錢五 雞母一,值錢三 雞雛三,值錢一 百錢買百雞,翁 cock 母 hen 雛 chick 各幾何?include int main int cock,hen,chick printf cock t,hen t...