割る2
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2026/01/01 06:47 UTC 版)
|
|
本稿では数学における割る2(英: Division by two)や半分(英: halving)について述べる[1]。古代エジプト以降[2][3]、この操作は他の数による乗除とは別に扱うようになった。古代エジプトの乗算は、割る2を1ステップと数えている[4]。16世紀末の数学者の中でもこれを別の演算として扱ったものもおり、現代のコンピュータ・プログラミングでも最適化の文脈で別個に扱うことがあ[5]る。この操作は、10進法でも、コンピューター・プログラミングで使われる2進法でも、その他の偶数基底でも簡単である。奇数を2で割るには、解法((N-1)÷2)+0.5を使う。例えば、N=7の場合、((7-1)÷2)+0.5=3.5となり、7÷2=3.5となる。
2進数
bit演算では、割る2はシフト演算によっても実装できる。これは演算子強度の最適化の一形態である。例えば、0b01101001(十進数の105)は、1つ右にシフトすると0b00110100(十進数の52)になる。この時、最下位の1は消える。同様に、二の冪
整数の場合、分母が2の割り算は数の偶奇性に関係する。偶数(2そのものと0を含む)は2で割り切れるが、奇数は割り切れない。
その他の用途
計算の簡略化
5を掛けるには、まず2で割ってから10を掛ける[10]。25を5倍する場合、まず25を2で割って12.5とし、次に10を掛けて125とすることで計算を簡略化できる。
二分探索
割る2は、計算機科学における二分探索にも利用されている。これは探索の目標と配列の中央に位置する要素を比較し、等しければその値を返す、等しくなければ目標が存在する可能性がない半分を除外し、残りの半分を同じ方法で探索するということを繰り返す探索アルゴリズムである[11]。二分探索では最悪計算時間がとなり、これは線形探索のよりも高速である[12][13]。
脚注
出典
- ^ Steele, Robert (1922), The Earliest arithmetics in English, Early English Text Society, 118, Oxford University Press, p. 82.
- ^ Jackson, Lambert Lincoln (1906), The educational significance of sixteenth century arithmetic from the point of view of the present time, Contributions to education, 8, Columbia University, p. 76.
- ^ Waters, E. G. R. (1929), “A Fifteenth Century French Algorism from Liége”, Isis 12 (2): 194–236, doi:10.1086/346408, JSTOR 224785.
- ^ Chabert, Jean-Luc; Barbin, Évelyne (1999), A history of algorithms: from the pebble to the microchip, Springer-Verlag, p. 16, ISBN 978-3-540-63369-3.
- ^ Wadleigh, Kevin R.; Crawford, Isom L. (2000), Software optimization for high-performance computing, Prentice Hall, p. 92, ISBN 978-0-13-017008-8.
- ^ Wadleigh, Kevin R.; Crawford, Isom L. (2000), Software optimization for high-performance computing, Prentice Hall, p. 92, ISBN 978-0-13-017008-8.
- ^ Hook, Brian (2005), Write portable code: an introduction to developing software for multiple platforms, No Starch Press, p. 133, ISBN 978-1-59327-056-8.
- ^ “Math.scalb”. Java Platform Standard Ed. 6. 2009年10月11日閲覧。
- ^ Programming languages — C, International Standard ISO/IEC 9899:1999, Section 7.12.6.6.
- ^ “优等生必学的速算技巧大全”. 清華大學出版社 (2018年). 2019年8月18日時点のオリジナルよりアーカイブ。2019年4月24日閲覧。
- ^ 久雄, 矢沢. “サーチのアルゴリズム (2) 二分探索法|新しい擬似言語で学ぶ 科目 B アルゴリズムとプログラミング入門”. 基本情報技術者試験 受験ナビ. 2025年11月4日閲覧。
- ^ “初心者でもわかる二分探索法:簡単な実装とその優れた効率性|プロダクト共創組織”. note(ノート) (2024年12月25日). 2025年11月4日閲覧。
- ^ “アルゴリズムを勉強するなら二分探索から始めよう! 『なっとく!アルゴリズム』より”. CodeZine (2017年2月8日). 2025年11月4日閲覧。
注釈
- ^ int型なので、小数点以下は切り捨てとなる。
関連項目
- 割る2のページへのリンク