今天有人問題一個數學問題,4x+1/x=2,求x是多少。把方程轉化一下,4x2 + 1 = 2x,然後4x2 - 2x + 1 =0,其實就是個一元二次方程的問題。好久沒弄這些東西了,數學都還高中老師了。還好會寫程序,下面用程序求出這個方程的根。
<? //ax*x bx c=0; 一元二次方程一般形式 //系數設定 $a = 2; $b = 3; $c = 0; echo '一元二次方程為'; echo $a.'x2'.'+'.$b.'x'.'+'.$c; //求根的函數 function get_root($a,$b,$c) { //放根的數組 $x=0; $x=array(); if($a==0) { if($b==0) if($c==0) { $x[0]=0; $x[1]="no root"; } else { $x[0]="no root"; $x[1]="no root"; } else if($b!=0) { $x[0]=(0-$c)/$b; $x[1]="no root"; } } else { //標志 $flg=$b*$b-4*$a*$c; //△ >0 兩個不同的根 if($flg >0) { $x[0]=((0-$b)+sqrt($flg))/2/$a; $x[1]=((0-$b)-sqrt($flg))/2/$a; } else if($flg==0)//△=0 兩個相同的根 { $x[0]=(0-$b)/2/$a; $x[1]=(0-$b)/2/$a; } else // 無根 { $x[0]="no root"; $x[1]="no root"; } } return $x; } //驗證代碼 參數為頂部設置的a b c 的值,可自行修改測試 $root=array(); $root=get_root($a,$b,$c); echo " <pre>求得根: <br>"; print_r($root); echo " <pre>"; ?>
程序運行的結果為:
一元二次方程為2x2+3x+0 求得根: Array ( [0] => 0 [1] => -1.5 )
回到最初的問題,經程序運算,結果為:
一元二次方程為4x2+-2x+1 求得根: Array ( [0] => no root [1] => no root )