内容:
核となるアイデア:
図1に示すように、決定された間隔、目標値が間隔でなければならないように
2、満たすためにプロパティを見つけます:
二段抵抗を有する(1) (すなわち、連続的な、二つの異なる特性に、同じ性質の同じ期間内)。
(2)答えはカットオフ点の二段階の性質です。
整数の除算:
要約:
離散分布(すなわち、連続していない)の数、および切り捨てint型のデフォルトは、そう場合、無限ループが発生し達成することが容易である場合ので、数直線上の二進整数です。ここでは、2つの実装の種類と有効無限ループを回避することができ、バイナリ整数関連する原理です。
最初のカテゴリ:
ANS(答えは)赤い部分の右端です。[L、R]、[L、M-1]に、[M、R 2つのセクション。
赤色の範囲のMは、[必ずしもMはANS、R]間隔で説明した場合、
他[L、M-1]の間隔に必ずしもANS。
図の擬似コード:
PS:図に示されるよう:Mを評価した場合であれば「+1」、場合L = R-1、及び第一条件が満たされたときに、L決して変更、ループを終了することができません。
第二のカテゴリー:
ANSは緑色左点範囲です。[L、R]、[L、M]に、[M + 1、R 2つのセクション。
グリーンゾーン内のMは、必ずしも[L、M]に記載ANS場合;および
必然的に他のANS [M + 1、R];及び
図の擬似コード:
PS:条件が成立した場合には「1」、プログラムが無限ループに陥る場合示す証拠が見られるように、ここでは不要Mを求めて「+1」、。
要約:
二つのサブステップ整数:
-
-
- 、区間[L、R]を見つけるように間隔必見の答え
- 決意の条件を取得し、その二段、二段との答えを持っていることの条件は、境界のポイントでなければならないこと
- 分析の中点Mは、この条件の下で設立された
設定している場合に関係なく、どのセクションの回答の、;
満足していない場合は、関係なく、どのセクションの答えの。 - 更新モードが書き込まれている場合:R&LT =ミッドを、任意の処置なし L =ミッド;ミッド「+1」を算出します
-
第二に、実数バイナリ:
数直線上の実際の連続的な、密な分布は、二つの要求が時間の正確なMに結合させることができるので、二つの境界点の整数は問題ではありません。
本物の二分法はあまり前に十分に小さい数よりもRL限り、比較的単純であるので、すべての答えの後、これまで半サイクルをすることができます。唯一の注意点は、一般的に聞いて、最後の二つの質問に正確さ、精度の二分法の境界条件に考えられています。(例:請求項6小数点問題は、設定条件RLは小数8よりも大きい場合)
第三に、関連する演習:
(前者は、リンクビットの元のタイトルの後に問題リンクに私の解決策です)
AcWing 番号790の3倍の平方根のオリジナルタイトルのリンク(実際の二分法のテンプレートのタイトルを)
範囲789に多数のAcWing オリジナルタイトルのリンクを (バイナリテンプレートタイトル整数、書き込みの2種類が使用されています)