解方程 二分搜尋

2021-08-19 16:14:41 字數 681 閱讀 8530

時間限制:c/c++ 1秒,其他語言2秒

空間限制:c/c++ 32768k,其他語言65536k

64bit io format: %lld

對於方程 2018 * x ^ 4 + 21 * x + 5 * x ^ 3 + 5 * x ^ 2 + 14 = y,

告訴你y的值,你能找出方程在0~100之間的解嗎?

第一行輸入乙個正整數t(表示樣例個數)

接下來t組樣例

每組樣例一行,輸入乙個實數y

一行輸出乙個樣例對應的結果,

輸出方程在0~100之間的解,保留小數點後4位小數;如果不存在,輸出 -1

這裡要用乙個迴圈完成二分搜尋

為了保證精確度,迴圈次數遠大於log2(1000000).

這裡的解實際上不是整的0.0001(單位)

例如20180421,輸出的是9.9993,實際是9.9993431009

所以不可以用1百萬層迴圈來每次加0.0001(錯誤方法)

必須用二分法

**:

#includeint main()

if(l==0||r==100)

printf("-1\n");

else printf("%.4f\n",m);

} return 0;

}

二分(二分查詢 解方程)

如何在乙個嚴格遞增序列a中找出給定的數x。比依次掃瞄更好的辦法是使用二分查詢。二分查詢是基於有序序列的查詢演算法,該演算法一開始令 left,right 為整個序列的下標區間,然後每次測試當前 left,right 的中間位置mid left right 2,判斷a mid 與欲查詢元素x的大小 如...

解方程 C 二分法

題目詳情 給出n個整數和x,請問這n個整數中是否存在三個數a,b,c使得ax2 bx c 0,數字可以重複使用。第一行兩個整數n,x 第二行n個整數a i 表示可以用的數 1 n 1000,1000 a i x 1000 yes表示可以 no表示不可以 2 1 1 2 yes要使用二分法解答此題,我...

二分法求解方程

二分法是一種求解方程近似根的方法。對於乙個函式 f x f x 使用二分法求 f x f x 近似解的時候,我們先設定乙個迭代區間 在這個題目上,我們之後給出了的兩個初值決定的區間 20,20 20,20 區間兩端自變數 xx 的值對應的 f x f x 值是異號的,之後我們會計算出兩端 xx的中點...