床関数と天井関数

床関数と天井関数

数学において床関数(floor function)は、実数xを入力として取り、 x以下の最大の整数(⌊ xまたはfloor( x )と表記)を出力する関数です。同様に、天井関数(ceil function )はx をx以上の最小の整数(⌈ xまたはceil( x )と表記)に写像します[1]

例えば、床関数の場合:⌊2.4⌋ = 2⌊−2.4⌋ = −3、天井関数の場合:⌈2.4⌉ = 3⌈−2.4⌉ = −2です。

xの床関数は整数、整数部、最大整数、またはxentierとも呼ばれ、歴史的には[ x ](他の表記法の中でも)と表記されていました。[2]しかし、同じ用語である整数部は、ゼロへの切り捨てにも使用され、負の数の床関数とは異なります。

整数nの場合、n ⌋ = ⌈ n ⌉ = nです

floor( x + 1)ceil( x )は全く同じグラフを生成しますが、 xの値が正確な整数の場合は同じではありません。例えば、x = 2.0001の場合、⌊2.0001 + 1⌋ = ⌈2.0001⌉ = 3 です。しかし、x = 2の場合、⌊2 + 1⌋ = 3 であるのに対し、 ⌈2⌉ = 2です。

xfloor xceiling x小数部 { x }
2220
2.0001230.0001
e230.7182...
2.9230.9
2.999230.999
π−4−30.8584...
−2−2−20

表記

数の整数部(原文partie entière )は、 1798 年にアドリアン=マリー・ルジャンドルがルジャンドルの公式の証明の中で初めて定義しました

カール・フリードリヒ・ガウスは、二次の相互法則の3番目の証明(1808年)において、角括弧表記[ x ]を導入しました。 [3]これは、ケネス・E・アイバーソンが1962年の著書『プログラミング言語』で「floor(床)」と「ceiling(天井)」という名称と、それに対応する表記xxを導入するまで、数学における標準[4]でした[5] [6](アイバーソンは角括弧を別の目的で使用し、アイバーソン括弧表記法と呼ばれていました。)現在では数学では両方の表記法が使用されていますが、この記事ではアイバーソンの表記法に従います。

一部の資料では、太字または二重括弧xが床に使用され、逆括弧xまたは] x [が天井に使用されます。[7] [8]

小数部は鋸歯状関数であり実数xに対して{ x }と表され、式で定義されます。

{ x } = x − ⌊ x[9]

すべてのxについて

0 ≤ { x } < 1です。

これらの文字はUnicodeで提供されています。

  • U+2308 LEFT CEILING ( ⌈, ⌈ )
  • U+2309 RIGHT CEILING ( ⌉, ⌉ )
  • U+230A LEFT FLOOR ( ⌊, ⌊ )
  • U+230B RIGHT FLOOR ( ⌋, ⌋ )

LaTeX組版システムでは、これらの記号は数式モードでコマンドとコマンドで指定できます。LaTeXは2018年からUTF-8をサポートしているため、Unicode文字を直接使用できるようになりました。[10]より大きなバージョンはとです\lceil, \rceil, \lfloor, \rfloor\left\lceil, \right\rceil, \left\lfloor,\right\rfloor

定義とプロパティ

実数xy、整数mn 、整数 の集合が与えられたとき、下限と上限は次の式で定義される。

長さ1の半開区間にはちょうど1つの整数が存在するため、任意の実数xに対して、次式を満たす 一意の整数mnが存在します。

ここで 、および は床関数と天井関数の定義としてもとることができます。

同値性

これらの式は、床関数と天井関数を含む式を簡略化するために使用できます。[11]

順序論の言語では、床関数は剰余写像、つまりガロア接続の一部です。つまり、整数を実数に埋め込むのは関数の上随伴関数です。

これらの式は、引数に整数nを追加すると関数にどのような影響が及ぶかを示しています。

nが整数でない場合、上記は決して真ではありません。ただし、すべてのxyに対して、次の不等式が成り立ちます。

単調性

床関数と天井関数はどちらも単調に非減少な関数です。

関数間の関係

定義から明らかなように、

xが整数の 場合に限り、等式となります。つまり

実際、整数nに対して、床関数と天井関数はどちらも恒等関数です。

引数の負号を取ると、床関数と天井関数が入れ替わり、符号が変わります。

そして、

引数の負号を取ると、小数部の補数ができます。

床関数、天井関数、小数部関数はべき等です。

入れ子になった床関数または天井関数の結果は、最も内側の関数になります。

整数の恒等関数の性質によります。

mnが整数で、n ≠ 0 の場合、

nが正の場合[12]

mが正の場合[13]

m = 2の場合、これらは

より一般的には、正のmの場合[14]です(エルミートの恒等式を参照)。

以下を使用して、床関数を天井関数に、またその逆に変換できます(mは正の場合)[15]

すべてのmnが正の整数の場合:[16]

これは、正の数で互いに素な mnの場合、次のように簡約されます

同様に、天井関数と小数部関数についても(これも正の数で互いに素な mnの場合)、


一般的な場合の右辺はmnについて対称なので、これは次のことを意味します。

より一般的には、mnが正の場合、

これは相互法則と呼ばれることもあります。[17]

正の整数による除算は、興味深く、時には有用な性質をもたらします。を仮定すると

同様に、

実際、

を念頭に置いて、天井関数を含む2番目の同値性も同様に証明できます。

dが正の整数で、xdより大きい場合、[18]

はdで割った余りです

入れ子の

正の整数nと任意の実数mおよびxの場合:[19]

連続性と級数展開

この記事で説明する関数はどれも連続ではありませんが、すべて区分線形です。関数、、整数で不連続です。

上半連続であり、下半連続です

この記事で説明する関数はどれも連続ではないため、いずれもべき級数展開を持ちません。floor と ceiling は周期的ではないため、一様収束するフーリエ級数展開を持ちません。小数部関数は、 x が整数でない場合、フーリエ級数展開を持ちます[20]

不連続点では、フーリエ級数は、床関数、天井関数、小数部関数とは異なり、左側と右側の極限の平均である値に収束します。y固定でxがyの倍数の場合、与えられたフーリエ級数はx  mod  y = 0ではなくy /2に収束します。 連続点では、級数は真の値に収束します。

式を用いると、 xが 整数でない場合、 次式が得られます 。

応用

Mod演算子

整数xと正の整数yに対して、x mod yで表される剰余演算は、 x をyで割ったときの剰余の値を与えます。この定義は、実数xy ( y ≠ 0 )に、次の式で 拡張できます。

次に、床関数の定義から、この拡張された演算は多くの自然な性質を満たすことがわかります。特に、x mod yは常に 0 とyの間、つまり

yが正の場合、

yが負の場合、

二次の相互性

アイゼンシュタインによって修正されたガウスの二次の相互性の3番目の証明には、2つの基本的なステップがあります。[21] [22]

pq を異なる正の奇数の素数とし、

まず、ガウスの補題を用いて、ルジャンドル記号が次のように与えられることを示します。

2番目のステップは、幾何学的な議論を用いて、次のことを示すことです

これらの式を組み合わせると、次の形の二次の相互性が得られます。

pを法とする奇数素数の二次の性質を表すために、floor 関数を使用する式があります。[ 23]

四捨五入

任意の実数 について正の無限大方向への同点決着を伴う最も近い整数への丸めは次のように表されます。

負の無限大方向への丸めは次のように表されます。

同点決着が 0 から離れている場合、丸め関数は

(ここで符号関数)、偶数方向への丸めはより扱いにくい

で表すことができます。これは、正の無限大方向への丸めを表す上記の式から の整数性指標を引いたものです

実数を 最も近い整数値に丸めることは、非常に基本的なタイプの量子化器、つまり一様量子化器を形成します。量子化ステップサイズがある値に等しい典型的な(中間トレッド)一様量子化器は、次のように表すことができます。

桁数

正の整数kのbを とする桁数

重複文字のない文字列の数

任意の長さで、同じ文字を2回使用しない文字の数は、 [24] [より良い出典が必要]で与えられます。

ここで、

n = 26の場合、これは1096259850353149530222034277になります。

階乗の因数

nを正の整数、pを正の素数とする。n割り切るpの最大のべき乗の指数は、ルジャンドルの公式[25]の変形で与えられる。

はpを底とするn書き方です。p k > nの場合床は0なので、これは有限和です

ビーティ数列

ビーティ数列は、すべての正の無理数が、床関数を介して自然数を2つの数列に分割する方法を示しています。 [26]

オイラー定数 (γ)

オイラー定数γ = 0.57721 56649 ...には、床関数と天井関数を含む公式があります。例えば、 [27]

および

リーマンゼータ関数 (ζ)

小数部関数は、リーマンゼータ関数の積分表現にも現れます。閉区間 [ a , b ]で連続導関数を持つ任意の関数が、(部分積分を用いて)[28] であること証明するは簡単です。

s実部1より大きくし、aとbを整数としb無限大に近づけると、次のようになります

この式は、実部が-1より大きいすべてのsに対して有効です(極が存在するs = 1を除く)。そして、{ x }のフーリエ展開と組み合わせることで、ゼータ関数を複素平面全体に拡張し、その関数方程式を証明することができます。[29]

臨界帯0 < σ < 1において、 s = σ + itの場合

1947年、ファン・デル・ポールはこの表現を用いて、ゼータ関数の根を求めるアナログコンピュータを構築しました。[30]

素数の公式

床関数は、素数を特徴付けるいくつかの公式に現れます。例えば、正の整数nが素数である必要条件は[31]であるため、

素数を生成する公式も与えることができる。例えば、p nをn番目の素数とし、任意の整数r  > 1に対して、実数αを以下の和で 定義する。

そして[32]

同様の結果として、θ = 1.3064...(ミルズ定数)という数があり、その性質は

すべて素数である。[33]

また、 ω = 1.9287800...という数があり、その性質は

すべて素数である。[33]

π ( x )をx以下の素数の個数とする。ウィルソンの定理から次のことが容易に導かれる。[ 34]

また、n ≥ 2 の場合、[35]

このセクションの公式はどれも実用的ではない。[36] [37]

解決済み問題

ラマヌジャンはこれらの問題をインド数学会誌に提出した[38]

nが正の整数の場合、次のことを証明しなさい。

上記の床関数恒等式へのいくつかの一般化が証明されている。[39]

未解決問題

ウォーリングの問題の研究から、未解決問題が生じた。

6 以上の正の整数kは存在するか? [40]

マーラーは、そのようなkは有限個しか存在しないことを証明したが、知られていない。[41]

コンピュータ実装

intC言語の浮動小数点変換関数

ほとんどのプログラミング言語では、浮動小数点数を整数に変換する最も簡単な方法は、切り捨てや切り上げではなく、切り捨てです。これは歴史的な理由によるもので、最初のマシンでは1の補数を使用しており、切り捨ての方が実装が簡単だったためです(2の補数では切り捨ての方が簡単です)。FORTRANこの動作を必要とするように定義されたため、ほとんどすべてのプロセッサがこの方法で変換を実装しています。これは、負のオフセットの処理や原点の負側のグラフィックスに関するバグにつながった、残念な歴史的な設計決定であると考える人もいます。[要出典]

符号付き整数をで算術的に右シフトすることは と同じです。2の累乗による除算は、多くの場合右シフトとして記述されますが、これはおそらく最適化のためではなく、負の結果の切り捨てが必要なためです。このようなシフトを「時期尚早な最適化」と想定し、除算に置き換えると、ソフトウェアが壊れる可能性があります。[要出典]

多くのプログラミング言語(CC++[42] [43] C#[44] [45] Java[46] [47] Julia[48] PHP[49] [50] R[51] Python [52]など)は、floor と ceiling の標準関数を提供しており、通常はfloorceil、またはあまり一般的ではない と呼ばれますceiling[53] APL言語では floor に が使用されます⌊x。Jプログラミング言語は APL の後継で、標準のキーボード記号を使用するように設計されており、<.floor に を、>.ceiling に を使用します。[54] ALGOL ではentierfloor に が使用されます。

Microsoft Excelでは、この関数はINTゼロに向かうのではなく切り捨てます[55]。一方FLOOR、ゼロに向かう切り捨ては、他の言語の「int」や「floor」の動作とは逆です。2010年以降、FLOOR数値が負の場合、エラーに変更されました[56]。OpenOffice.org Libreofficeなど使用されているOpenDocumentファイル形式[57]は、どちらも切り捨てを行い、Excelの以前の動作を再現するための3番目の引数を持っています[58] 。INTFLOORFLOOR

参照

引用文献

  1. ^ Graham、Knuth、Patashnik、第3章1
  2. ^ 1) Luke Heaton著、『数学思想の簡潔な歴史』、2015年、 ISBN 1472117158(np)
    2) Albert A. Blank他著微分積分学、1968年、259ページ
    3) John W. Warris、Horst Stocker著、数学と計算科学ハンドブック、1998年、ISBN 0387947469、151ページ
  3. ^ Lemmermeyer、10、23ページ
  4. ^ 例えば、Cassels、Hardy & Wright、RibenboimはGaussの記法を使用しています。Graham、Knuth & Patashnik、Crandall & PomeranceはIversonの記法を使用しています。
  5. ^ Iverson、12ページ
  6. ^ Higham、25ページ
  7. ^ Mathwords:床関数
  8. ^ Mathwords:天井関数
  9. ^ Graham、Knuth、Patashnik、70ページ
  10. ^ 「LaTeXニュース 第28号」(PDF; 379 KB) . LaTeXプロジェクト. 2018年4月. 2024年7月27日閲覧.
  11. ^ Graham, Knuth, & Patashnik、第3章
  12. ^ Graham, Knuth, & Patashnik、73ページ
  13. ^ Graham, Knuth, & Patashnik、85ページ
  14. ^ Graham, Knuth, & Patashnik、85ページおよび例3.15
  15. ^ Graham, Knuth, & Patashnik、例3.12
  16. ^ Graham, Knuth, & Patashnik、94ページ
  17. ^ Graham, Knuth, & Patashnik, p. 94
  18. ^ Problems and Solutions, The College Mathematics Journal, 56:4
  19. ^ Graham, Knuth, & Patashnik, p. 71, 定理3.10を、 ⁠x/m⁠を入力として、 nによる除算を関数として適用する
  20. ^ Titchmarsh, p. 15, 式2.1.7
  21. ^ Lemmermeyer, § 1.4, 例1.32–1.33
  22. ^ Hardy & Wright, §§ 6.11–6.13
  23. ^ Lemmermeyer, p. 25
  24. ^ OEISシーケンス A000522 (n個の要素を持つ集合の配置の総数: a(n) = Sum_{k=0..n} n!/k!) (公式を参照)
  25. ^ Hardy & Wright, Th. 416
  26. ^ Graham, Knuth, & Patashnik, pp. 77–78
  27. ^ これらの公式はWikipediaの記事「オイラーの定数」からの引用で、この記事にはさらに多くの公式が掲載されています。
  28. ^ Titchmarsh, p. 13
  29. ^ Titchmarsh, pp . 14–15
  30. ^ Crandall & Pomerance, p. 391
  31. ^ Crandall & Pomerance, Ex. 1.3, p. 46。和の無限大の上限はnに置き換えることができます。同等の条件は、 n  > 1が素数である場合、かつその場合に限ります。
  32. ^ Hardy & Wright, § 22.3
  33. ^ Ribenboim, p. 186
  34. ^ リーベンボイム、181ページ
  35. ^ クランドール&ポメランス、例1.4、46ページ
  36. ^ リーベンボイム、180ページは、「これらの公式の実用的な価値はゼロであるにもかかわらず…[それらは]算術の様々な部分がどのようにして異なる公理から演繹されるのかを明確に理解したい論理学者にとって、ある程度の関連性を持つかもしれない…」と述べている。
  37. ^ ハーディ&ライト、344~345ページ「これらの公式のいずれか(または類似の公式)は、数αの正確な値が素数とは独立して表現できれば、異なる地位を獲得するだろう。これはありそうにないが、完全に不可能であるとは言い切れない。」
  38. ^ ラマヌジャン、質問723、論文集、 332ページ
  39. ^ソム、サイ テジャ;ククラ、アンジェイ (2022). 「ラマヌジャンの床関数恒等式へのいくつかの一般化について」(PDF) .整数. 22. arXiv : 2109.03680 .
  40. ^ Hardy & Wright, p. 337
  41. ^ Mahler, Kurt (1957). 「有理数のべき乗の分数部について II」. Mathematika . 4 (2): 122– 124. doi :10.1112/S0025579300001170.
  42. ^ 「C++ floor関数リファレンス」. 2010年12月5日閲覧.
  43. ^ 「C++ ceil関数リファレンス」. 2010年12月5日閲覧.
  44. ^ dotnet-bot. 「Math.Floorメソッド(システム)」. docs.microsoft.com . 2019年11月28日閲覧.
  45. ^ dotnet-bot. 「Math.Ceilingメソッド(システム)」. docs.microsoft.com . 2019年11月28日閲覧
  46. ^ 「Math (Java SE 9 & JDK 9)」. docs.oracle.com . 2018年11月20日閲覧
  47. ^ 「Math (Java SE 9 & JDK 9)」. docs.oracle.com . 2018年11月20日閲覧
  48. ^ 「Math (Julia v1.10)」. docs.julialang.org/en/v1/ . 2024年9月4日閲覧。
  49. ^ 「ceil関数のPHPマニュアル」. 2013年7月18日閲覧
  50. ^ 「floor関数のPHPマニュアル」. 2013年7月18日閲覧。
  51. ^ 「R: 数値の丸め」.
  52. ^ 「mathモジュールのPythonマニュアル」. 2013年7月18日閲覧。
  53. ^ Sullivan, p. 86.
  54. ^ 「語彙」. J Language . 2011年9月6日閲覧
  55. ^ 「INT 関数」 . 2021年10月29日閲覧
  56. ^ 「FLOOR関数」 。 2021年10月29日閲覧
  57. ^ 「ドキュメント/ハウツー/計算:INT関数」2021年10月29日閲覧。
  58. ^ 「ドキュメント/ハウツー/計算:FLOOR関数」 。 2021年10月29日閲覧

参考文献

  • JWS Cassels (1957)、『ディオファントス近似入門』、Cambridge Tracts in Mathematics and Mathematical Physics、第45巻、Cambridge University Press
  • リチャード・クランドール、カール・ポメランス(2001年)、素数:計算的視点、ニューヨーク:シュプリンガーISBN 0-387-94777-9
  • グラハム、ロナルド・L.、クヌース、ドナルド・E.、パタシュニク、オーレン (1994)、『具体的な数学』、Reading Ma.:Addison-Wesley、ISBN   0-201-55802-5
  • ハーディ、GH、ライト、EM (1980)、『数論入門(第5版)』、オックスフォード:オックスフォード大学出版局ISBN 978-0-19-853171-5
  • ニコラス・J・ハイアム、『数理科学のためのライティングハンドブック』、SIAM、ISBN 0-89871-420-6、25ページ
  • ISO / IEC . ISO/IEC 9899::1999(E): プログラミング言語 - C(第2版)、1999年、6.3.1.4項、43ページ
  • アイバーソン、ケネス・E.(1962年)、プログラミング言語、Wiley
  • レマーマイヤー、フランツ(2000年)、相互法則:オイラーからアイゼンシュタインまで、ベルリン:シュプリンガーISBN 3-540-66957-4
  • ラマヌジャン、シュリニヴァサ(2000年)、Collected Papers、プロビデンスRI:AMS / Chelsea、ISBN 978-0-8218-2076-6
  • リーベンボイム、パウロ (1996)、『素数記録の新書』、ニューヨーク:シュプリンガー、ISBN 0-387-94457-5
  • マイケル・サリバン著、『プレカルキュラス』、第8版、86ページ
  • ティッチマーシュ、エドワード・チャールズ;ヒース=ブラウン、デイヴィッド・ロドニー(「ロジャー」)(1986)、『リーマン・ゼータ関数の理論』(第2版)、オックスフォード:オックスフォード大学出版局、ISBN 0-19-853369-1
Retrieved from "https://en.wikipedia.org/w/index.php?title=Floor_and_ceiling_functions&oldid=1322392807"