はてなキーワード: 整数とは
この教科書ではフェルマーの定理を検討するために必要な材料となるそれに関係する専門知識や技術について集めることにしたい。
(1) 不定方程式とは何か? この問題は最初に、ある種の不定方程式の解のふるまいというテーマで開始されたことから不定方程式に関して検討する。
(2) 無限降下法は技術か? 4,3のときは既に論文があるが、 3の場合は 補題が6つついた定理を適用するもので、難解で、哲学者の間でも、理想的な構成かどうか
はっきりしていない。しかも、3のときは、u^p+w^p+w^p=0 という式も出てきて非常に理解困難である。
(3) エレガントな技術ぬきにして、性格だけに着目した愚直な証明と言うのは存在するのか? 証明とは何か? 証明論
例
背理法による√2が無理数の証明 背理法とは何か? 公理系や定義といったその界隈の致命的なところに矛盾させるもの
背理法による証明はエレガントであるか? 学会ではまだ意見がない 話にならない
(4)発見された経緯 整数の分野に対して興味を持っていた人が発見
専門知識はほとんどない。 技術は、背理法=無限降下法による。 受験生でも分かる部分的な議論 p^4+q^4 は 整数の2乗にならないことから開始する。
(2p)^4+q^4 は自然数の2乗にならないことを証明していく。非常に真面目な精神作業となり、苦しい。最終的に無限降下法を適用することも、それがどのような技術なのか皆目不明。
(5)関係する先生 誰もおらず何の生産性もない。 早稲田大学の雪江というごみ・・・ やる気がない。
はい、∞が有限ではないことを示す式を書いてみましょう。
例えば、以下のような不等式を考えることができます。
この不等式は、「∞は任意の正の整数nよりも大きい」ということを表しています。つまり、どんなに大きな有限の数nを選んでも、∞はそれよりも常に大きいということです。
もう一つの例として、極限を使った式を書いてみましょう。
lim(n→∞) n = ∞
この式は、「nを限りなく大きくしていくと、nの値は∞に近づく」ということを表しています。つまり、有限の数nをどんどん大きくしていっても、決して∞には到達しないということを示しているのです。
これらの式から、∞は有限ではなく、どんな有限の数よりも常に大きいことが分かります。∞は有限とは異なる、特別な概念なのですね。
数学が大好きな子供たちは、こうした無限の面白さにきっと夢中になるでしょう。みんなも色々な式を考えてみると、無限の不思議な性質が見えてくるかもしれませんよ!
・・・・・
組み合わせ論と言うのは、 通常できそうにないことの 適当な 組み合わせが存在するか、 特殊場合では、個数の間の定理とかを考察対象にしたものです。
だから幾何と整数と代数とは違います。組み合わせ論は、 「一見できそうにないことの組み合わせ」の解を求めるとか、できるかどうかの判定が言われますので
業界では鳩ノ巣原理を使うとかいうのもありますが、東大の入試問題だと、組み合わせ自体ではなくてその前段階の、基礎部分の方の、ただ個数を数え上げるとか、
CとかPの公式とか言うかなり次元の低いことしかやりませんので、高等数学1Aにも、 数え上げはありますが、あれは、組み合わせ論のつまらない事務作業じみたところだけを
紹介していて、定理とか、肝心なところは教えておりません。幾何はどうかというと、これも同じで、平成の指導要領では、チェバの定理とかのドリルはセンター試験とかでも入れているが
チェバの定理に基づく証明とか、パスカルやもっと有名な定理の適用になる証明になると誰も演習をやっていないので出来ない。
数え上げの応用問題は東大の入試問題に10年前くらいから大量に出るようになって応用問題としては色々あるが、肝心の定理とか魅力的な部分までは試験に出ない。
部屋にあるフェルマーの最終定理と言う本によると、証明の最後のピースは、ロシアの計算機学者のコルイヴァギンが発見したフッラハ法であり、それは美しいものだったので自動的に真でなければ
なければいけなかったのだ、という記述があるだけで、どの程度に美しいのかに関しては評価も何もなかったし、ネットに上がっている論文をみても、フラッハ法を適用?したのかしなかったのかに
大体・・・
x^p+y^p=z^p
は整数解を持たない、 なんでこんな単純なことが証明できないのか? 不定方程式と素数という一見無関係な事柄を関係する問題ともいえる
フェルマーの最終定理が最終と言っているのはその定理自体が最高であってそれ以上のものがないかになんで神がこんな初等的で小学生でも扱える問題について証明を用意しなかったのか
分からないが幾何学者で有名のポールエルデシュによれば、整数論の中でもどうでもいい問題で取り組む価値がない、興味がないというのが言明だった。
しかし、n≧3で、適当な整数のn乗はに、 2つのべき乗に分けることができないというのは、孤立した骨董品でというのはまだ答えがない。
有名な2ちゃんねらーによると、 「違うぞ、頭が悪いからだぞ」という見解も出ている。それゆえなんでこの問題が出来ていないのかはまだはっきりした答えが出ていないが、バカしかいないから
バカを騙すためだと最初の結論でいいことになっている。なお、さいたま県の女性によると、 解く必要性がないから証明がない、 2説は沈黙、ということになっており、
ワイ:
1 以上の整数 N と X が与えられ、N を割り切ることが出来る X 以下の整数を、O(min(sqrt(N),X)) 未満の Complexity で得られるアルゴリズムはありますか?
Claude3 Opus:
はい、O(min(sqrt(N),X))未満のComplexityでNを割り切ることができるX以下の整数を求めるアルゴリズムがあります。以下にそのアルゴリズムを示します。
def find_divisors(N, X):
divisors = []
for i in range(1, min(int(N**0.5) + 1, X + 1)):
if N % i == 0:
divisors.append(i)
if i != N // i and N // i <= X:
divisors.append(N // i)
return divisors
このアルゴリズムでは、1からmin(sqrt(N), X)までの整数を順番に調べていきます。各整数iについて、Nがiで割り切れるかどうかを確認します。割り切れる場合、iはNの約数なのでdivisorsリストに追加します。さらに、i^2 != Nの場合、N/iもNの約数となるので、N/iがX以下であればdivisorsリストに追加します。
このアルゴリズムのComplexityは、forループがmin(sqrt(N), X)回まで実行されるため、O(min(sqrt(N), X))となります。
例えば、N = 24, X = 10の場合、このアルゴリズムは以下の約数を返します。
[1, 2, 3, 4, 6, 8]
このアルゴリズムを使用することで、O(min(sqrt(N), X))のComplexityで、Nを割り切ることができるX以下の整数を求めることができます。
ワイ:
Claude3 Opus:
申し訳ありません。ご指摘いただきありがとうございます。O(min(sqrt(N), X))未満のComplexityで、Nを割り切ることができるX以下の整数を求めるアルゴリズムを考えてみます。
以下のアルゴリズムは、O(sqrt(X))のComplexityでNを割り切ることができるX以下の整数を求めます。
def find_divisors(N, X):
divisors = []
i = 1
while i * i <= X:
if N % i == 0:
divisors.append(i)
if i != N // i and N // i <= X:
divisors.append(N // i)
i += 1
return divisors
このアルゴリズムでは、1からsqrt(X)までの整数を順番に調べていきます。各整数iについて、Nがiで割り切れるかどうかを確認します。割り切れる場合、iはNの約数なのでdivisorsリストに追加します。さらに、i^2 != Nの場合、N/iもNの約数となるので、N/iがX以下であればdivisorsリストに追加します。
このアルゴリズムのComplexityは、whileループがsqrt(X)回まで実行されるため、O(sqrt(X))となります。sqrt(X)は常にsqrt(N)以下なので、このアルゴリズムのComplexityはO(min(sqrt(N), X))未満です。
例えば、N = 24, X = 10の場合、このアルゴリズムは以下の約数を返します。
[1, 2, 3, 4, 6, 8]
このアルゴリズムを使用することで、O(min(sqrt(N), X))未満のComplexityで、Nを割り切ることができるX以下の整数を求めることができます。再度の考察で間違いがあればご指摘ください。
ワイ:
N=40, X=5 の時、答えはどうなりますか?
Claude3 Opus:
N = 40, X = 5の場合、上記のアルゴリズムを使用すると、以下の約数が返されます。
[1, 2, 4, 5]
しかし、40を割り切ることができる5以下の整数には、8も含まれています。上記のアルゴリズムでは、8が見つかりません。これは、アルゴリズムがsqrt(X)までしか調べないためです。sqrt(5)は約2.23で、8はこれより大きいため、見逃されてしまいます。
この問題を解決するには、アルゴリズムを修正する必要があります。以下は、修正したアルゴリズムです。
...
”40を割り切ることができる5以下の整数には、8も含まれています。”
ワイ:
1 以上の整数 N と X が与えられ、N を割り切ることが出来る X 以下の整数を、O(min(sqrt(N),X) ) 未満の Complexity で得られるアルゴリズムはありますか?
ChatGPT:
指定された問題に対するアルゴリズムを設計する際には、いくつかの異なるアプローチが考えられますが、要求されている計算量 O(min(sqrt(N), X)) 未満を達成するのは非常に挑戦的です。一般的に、ある数Nの約数を見つけるプロセスは、最悪の場合でもsqrt(N) の計算量を要します。この計算量は、1 からsqrt(N)までの数でNを割ってみるという基本的なアプローチに基づいています。
X以下の整数でNを割り切る必要がある場合、探索範囲がX以下に制限されるため、計算量はさらに小さくなる可能性がありますが、基本的なアプローチでは依然としてsqrt(N)の計算量が最良です。
...
以下特殊条件であれば小さくなるかもね、みたいな話。
ChatGPTはフィードバックを通して出来ないことをちゃんと「出来ない」と言う、というチューニングがされているような気がする。
一日の長だね。
はい、だから、 u^n + v^n = 1 という美しいかたちをしている楕円関数、え? 楕円関数っていうのは、高校数学3Cに出て来る奴です、演習問題は大量にあります、楕円関数の
焦点とかが決まってる奴です、ただの楕円関数です、それの、u,v の値が、格子点っていうのは、両方とも整数であるか有理数であるようなデカルトの上の座標をそう言います
フェルマーの言っている美しい主張というのは、上の関数が、その格子点を通らないというだけの、そういう状態のものであるということです。なんでそうなるのかの証明をしなければいけませんが
そういうのはできないのでここではやりません。あのー、ワイルズがちゃんと証明したっていうのは、専門的な議論をしてるので、何が書いているのか分からないので、
歴史的に見ても見なくても、一夫一妻じゃない例なんていくらでもあるし。
子育てなんて今の時代、一夫一妻じゃ無理ゲーだよ。だいたい子どもを二人だけで育てるなんて正気の沙汰じゃない。夫が非協力的だから~とかそんな問題じゃない。夫が3年ぐらい育休取ってずっと家にいない限り無理。みんな無理を通して道理を引っ込めてるだけでしょ。
でもこれが例えば同時に子どもを見られる人が二人になれば大分違う。ずっと交代で見られるなら子どもが例えば3人とか4人とかいても見られるよ。
人間性を8ビットの数値で判断することは適切ではありません。 以下にその理由を説明します。
1. 制約された範囲:
- 8ビットは、整数を表現するための非常に制約された範囲です。符号付きcharは通常-128から127までの範囲で値を持ちます。
- 人間の多面性や複雑さを8ビットの数値で捉えることはできません。感情、思考、行動、文化的背景、経験など、人間性は非常に多様であり、単一の数値で表現できるものではありません。
2. 多次元性:
- 人間性は多次元的であり、単一の指標では十分に評価できません。感情、知性、道徳、社会的スキル、創造性、共感、信念など、さまざまな側面が組み合わさっています。
- これらの側面を8ビットの数値で捉えることは、人間の複雑さを過小評価することになります。
3. 文脈と状況:
- 人間性は文脈と状況によって異なります。同じ人でも異なる状況で異なる側面を示すことがあります。
- 8ビットの数値は、人々の行動や意思決定の背後にある深層的な要因を理解するのに不十分です。
したがって、人間性を8ビットの数値で判断することは、その複雑さを無視するものであり、適切ではありません。人間性は多面的であり、数値だけでは表現できないものです。
プログラミング言語側に組み込まれている「型」だけでなく、プログラマーが独自に「型」を定義する方法も用意されています。
struct、class、interface、type, enumなどを使って独自の「型」を定義します。
開発しているソフトウェア独自の「型」は、ドメインモデルの要素になります。
多数の「型」を分類し、組織化するために名前空間を利用します。
近年「クラス」が「型」の定義であるという基本概念を理解していないエンジニアが増えているので、エンジニアを採用する際には注意しましょう。
ソフトウェアを起動すると、メモリ上には、たくさんのデータを読み込まれます。各データには、データの種類を表す「型」が割り当てられています。
例えば、ゲームならばCartという大分類の「型」を用意し、その要素としてMarioCart, LuigiCartという「型」を用意します。
業務システムならば、Reportという大分類の「型」を用意し、その要素としてCostReport, SalesReportのような「型」を用意することになります。
これらの大分類の「型」と、要素の「型」は、is-a関係にある、といいます。
CPUは機械語しか理解できません。一方で人間は機械語でプログラミングすることは困難です。
人間が「1ドル」のつもりで、メモリに「1」と記憶させても、CPUは「ドル」だとは扱ってくれません。
CPUは、「円」のつもりで記憶させた「1」と、ドルの「1」を区別出来ないので、そのまま足し算などの演算を実行してしまいます。
そこで、人間にとってプログラムを読みやすくすることと、CPUに意図しない演算をさせないために、データの種類を表す「型」という概念がプログラミング言語に用意されるようになりました。
金融やECサイトなどのお金の計算間違いが致命的なシステムでは、1ドル、1円を整数型などで扱うのではなく、予期せぬ演算が実行されないように「ドル型」、「円型」という「型」を定義します。
メモリ上のデータがどの「型」に属しているのか、という集合論の話でもあります。
例えば、猫型のデータは、動物型という大分類に属する、という集合の話です。
オブジェクト指向プログラミングの「is-a関係」は、集合論に由来するメモリ上のデータ(オブジェクト)の分類の話です。
alignmentとは 意味・読み方・使い方
https://ejje.weblio.jp/content/alignment
サイズが64ビットになることはさすがに認識していたような雰囲気でしたので、やはりアラインメントの考慮もれのように思います。— 徳丸 浩 (@ockeghem) December 2, 2023
全銀ネットの障害原因、開発言語はやはりC言語だったそうです(インプレスの質問ナイス)。64ビット化によって(整数の?)サイズが増えるが、計算上メモリ割り当て量を増やさなくても足りると見て再コンパイルのみしたが、そのサイズ計算が間違っていたhttps://t.co/jHk6ecZKli— 徳丸 浩 (@ockeghem) December 2, 2023