床関数と天井関数

床関数と天井関数

数学において、床関数( 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の床関数はx整数部、整数部最大整数、またはentierとも呼ばれ、歴史的には[ 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 となります。

×x天井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年の著書『プログラミング言語』で「床」と「天井」という名前と、それに対応する表記法xxを導入するまで、数学の標準[4]であり続けました[5] [6](アイバーソンは角括弧を別の目的で使用し、アイバーソン括弧表記法を採用しました。)現在では両方の表記法が数学で使用されていますが、この記事ではアイバーソンの表記法に従います。

いくつかの資料では、太字または二重括弧x ⟧は下限を表し、逆括弧xまたは] x [は上限を表すために使用される。[7] [8]

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

{ x } = x − ⌊ x[9]

すべてのxに対して

0 ≤ { x } < 1

Unicode では次の文字が提供されています:

  • U+2308 左天井( ⌈, ⌈ )
  • U+2309 右天井( ⌉, ⌉ )
  • U+230A 左フロア( ⌊, ⌊ )
  • U+230B 右階( ⌋, ⌋ )

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が一意に存在する。

ここで 、およびは、  floor と ceiling の定義としてとらえることもできます。

同値性

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

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

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

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

単調性

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

機能間の関係

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

xが整数の 場合にのみ等式となる。つまり

実際、整数nの場合、床関数と天井関数は両方とも恒等関数です。

引数を否定すると、下限と上限が入れ替わり、符号も変わります。

そして:

引数を否定すると小数部分が補われます。

下限関数、上限関数、小数部関数はべき等です。

ネストされた floor 関数または ceiling 関数の結果は、最も内側の関数になります。

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

mnが整数でn ≠0の場合

nが正の場合[12]

mが正の場合[13]

m = 2の場合、これらは

より一般的には、[14]正のmに対してエルミートの恒等式を参照)

以下は床から天井への変換、またその逆の変換に使用できる(mは正の値)[15]

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

これは、正で互いに素な mnに対して、

同様に天井関数と分数部関数についても(やはり正で互いに素な mnに対して)、


一般の場合の右辺はmnに関して対称なので、

より一般的には、mnが正であれば、

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

正の整数による割り算は、興味深く、時には役に立つ性質を生じます。

同様に、

確かに、

天井関数に関する 2 番目の同値性も同様に証明できることを念頭に置いてください。

d正の整数でxはdより大きい。すると[18]

d割った余りはどこにあるか

ネストされた分割

正の整数nと任意の実数mxについて: [19]

連続性とシリーズの拡張

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

上部半連続で、は下部半連続です。

本稿で扱う関数はいずれも連続ではないため、冪級数展開は持たない。floorとceilingは周期的でないため、一様収束するフーリエ級数展開は持たない。小数部関数は、 xが整数でない場合にフーリエ級数展開[20]を持つ。

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

この式を使用すると、 xは整数 ではあり ません。

アプリケーション

Mod演算子

整数xと正の整数yに対して、モジュロ演算( x mod yと表記)は、 x をyで割ったときの余りの値を与えます。この定義は、実数xyy ≠ 0 )に対して、次の式で拡張できます。

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

yが正の場合

yが負の場合

二次相互性

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

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

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

2番目のステップは、幾何学的な議論を用いて、

これらの式を組み合わせると、次のような二次の相互関係が得られる。

奇数素数pを法とする小さな数の二次の性質を表すためにfloor関数を使用する公式がある[23]

丸め

任意の実数に対して、正の無限大に向かって同点を解消しながら最も近い整数に丸めると、次の式で表される。

負の無限大への丸めは次のように与えられる。

タイブレークが0から離れている場合、丸め関数は

(ここで符号関数)、そして偶数方向への丸めはより面倒な

これは、 の整数性インジケータ引いた、正の無限大への丸めを表す上記の式です

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

桁数

正の整数kの基数 bの桁数

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

同じ文字を2回使用しない任意の長さの文字列の数は[24]で与えられる[より良い情報源が必要]

どこ:

  • n > 0 はアルファベットの文字数です(例:英語では 26 )
  • 下降階乗は、 同じ文字を 2 回使用しない長さkの文字列の数を示します。
  • n ! はn階乗を表す
  • e = 2.718...はオイラー数です

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

階乗の因数

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

ここで、 はpを底とするnの書き方です。 p k > nのとき、底はゼロとなるため、これは有限和となります

ビーティシーケンス

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

オイラー定数(γ)

オイラー定数γ = 0.57721 56649 ...には、例えば[27]のように、下限と上限を含む公式がある。

そして

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

分数部関数はリーマンゼータ関数の積分表現にも現れる閉区間[ a , b ]で連続微分を持つ任意の関数

s1より大きく、abが整数で、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.orgLibreofficeなどで使用されているOpenDocumentファイル形式[57]は、どちらも切り捨てを行い、Excelの以前の動作を再現するための3番目の引数を持っています。[58]INTFLOORFLOOR

参照

引用

  1. ^ グラハム、クヌース、パタシュニク、Ch. 3.1
  2. ^ 1) ルーク・ヒートン『数学思想史』2015年、 ISBN 1472117158(np)
    2) Albert A. Blank他著, Calculus: Differential Calculus , 1968, p. 259
    3) John W. Warris, Horst Stocker, Handbook of math and computenational science , 1998, ISBN 0387947469、151ページ
  3. ^ レマーマイヤー、10、23ページ。
  4. ^ 例えば、Cassels、Hardy & Wright、RibenboimはGaussの記法を使用しています。Graham、Knuth & Patashnik、Crandall & PomeranceはIversonの記法を使用しています。
  5. ^ アイバーソン、12ページ。
  6. ^ ハイアム、25ページ。
  7. ^ Mathwords: 床関数。
  8. ^ Mathwords: 天井関数
  9. ^ グラハム、クヌース、パタシュニク、p. 70.
  10. ^ 「LaTeXニュース 第28号」(PDF; 379 KB) . LaTeXプロジェクト. 2018年4月. 2024年7月27日閲覧
  11. ^ グラハム、クヌース、パタシンク、Ch. 3
  12. ^ グラハム、クヌース、パタシュニク、p. 73
  13. ^ グラハム、クヌース、パタシュニク、p. 85
  14. ^ グラハム、クヌース、パタシュニク、p. 85およびEx. 3.15
  15. ^ グラハム、クヌース、パタシュニク、例3.12
  16. ^ グラハム、クヌース、パタシュニク、p. 94.
  17. ^ グラハム、クヌース、パタシュニク、p. 94
  18. ^ 問題と解答、大学数学ジャーナル、56:4
  19. ^ Graham, Knuth, & Patashnik, p. 71、定理3.10を次のように適用する×/メートル⁠を入力として、 nによる除算を関数として
  20. ^ Titchmarsh、15ページ、式2.1.7
  21. ^ レマーマイヤー、§ 1.4、例 1.32–1.33
  22. ^ ハーディ&ライト、§§6.11–6.13
  23. ^ レマーマイヤー、25ページ
  24. ^ OEISシーケンスA000522(n個の要素を持つ集合の配置の総数:a(n) = Sum_{k=0..n} n!/k!。)(公式を参照。)
  25. ^ ハーディ&ライト、Th. 416
  26. ^ グレアム、クヌース、パタシュニク、77–78 ページ
  27. ^ これらの式は、Wikipedia の記事「オイラーの定数」からの引用ですが、この記事にはさらに多くの式が記載されています。
  28. ^ ティッチマーシュ、13ページ
  29. ^ ティッチマーシュ、14~15ページ
  30. ^ クランドール&ポメランス、391ページ
  31. ^ Crandall & Pomerance, Ex. 1.3, p. 46. 和の上限が無限大であることはnに置き換えることができる。同等の条件は、 n  > 1 が素数であることと、
  32. ^ ハーディ&ライト、§ 22.3
  33. ^ リベンボイム著、186ページ
  34. ^ リベンボイム、181ページ
  35. ^ クランドール&ポメランス、例1.4、46ページ
  36. ^ リベンボイム、180ページでは、「公式の実用的な価値はゼロであるにもかかわらず... [それらは] 算術のさまざまな部分が異なる公理からどのように演繹されるかを明確に理解したい論理学者にとって、ある程度の関連性があるかもしれない...」と述べています。
  37. ^ Hardy & Wright, 344-345ページ「これらの式(あるいは類似の式)は、もしαの正確な値が素数に依存せずに表現できれば、異なる地位を獲得するだろう。これはありそうにないが、完全に不可能だとは言い切れない。」
  38. ^ ラマヌジャン、質問723、論文集、332ページ
  39. ^ Somu, Sai Teja; Kukla, Andrzej (2022). 「ラマヌジャンの床関数恒等式へのいくつかの一般化について」( PDF) . Integers . 22. arXiv : 2109.03680 .
  40. ^ ハーディ&ライト、337ページ
  41. ^ マーラー、クルト(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 Method (System)」. 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. ^ 「PHPマニュアル ceil関数」 。 2013年7月18日閲覧
  50. ^ 「PHPマニュアル:floor関数」 。 2013年7月18日閲覧
  51. ^ 「R: 数値の丸め」。
  52. ^ 「Pythonマニュアルmathモジュール」 。 2013年7月18日閲覧
  53. ^ サリバン、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年)、Prime Numbers: A Computational Perspective、ニューヨーク:SpringerISBN 0-387-94777-9
  • グラハム、ロナルド L.; クヌース、ドナルド E.; パタシュニック、オーレン (1994)、『具体的な数学』、Reading Ma.: Addison-Wesley、ISBN 0-201-55802-5
  • ハーディ、GH; ライト、EM (1980) 『数論入門』(第五版)、オックスフォード:オックスフォード大学出版局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、p.43。
  • アイバーソン、ケネス E. (1962)、『プログラミング言語』、ワイリー
  • Lemmermeyer、Franz (2000)、相反性の法則: オイラーからエイゼンシュタインまで、ベルリン: SpringerISBN 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"