はてなキーワード: 整数とは
偶数奇数を判定するための途方もないプログラミングコードが話題に
http://blog.livedoor.jp/itsoku/archives/55507489.html
x mod 2
で行いますが、ビット演算を使い、最下位ビットが立ってるかチェックする
x and 1
負の表現に2の補数を使うプログラミング言語では問題無いのですが、Cではちょっと問題が起きます。
X3010:2003 プログラミング言語 C 6.2.6.2 整数型
符号付き整数型において、オブジェクト表現のビットは、値ビット、詰め物ビット、および符号ビットの三つのグループにわけられなければならない。
詰め物ビットは存在しなくてもよく、符号ビットは丁度一つでなければならない。それぞれの値ビットは、対応する符号なし整数型のオブジェクト表現における同じビットと同じ値をもたなければならない。(略)
符号ビットが0であれば、それは結果の値に影響を及ぼしてはならない。符号ビットが1であれば、値は次に示す方法の一つにしたがって変更されなければならない。
- 符号ビットが0のときの値を負数化した値[符号と絶対値(sign and magnitude)]
- 符号ビットが値-(2N)をもつとするときの値[2の補数(two's complement)]
2の補数の場合(1111 1111)2
1の補数の場合(1111 1110)2
よって、処理系が2の補数を採用している場合では問題ありませんが、1の補数を採用している場合に判定が逆になります。
UNISYS社のClearPath Dorado Systems(ClearPath OS2200)で採用されているという話です。
元々、勉強は嫌いな方ではなく、クイズとかも好きで、成績は多分、上の下くらいだったと思う。
ただし、私の通っていた公立中学はあまり、治安の良い学校とは言えず(よく先生が辞めたり、クラスに1人は不登校がいるみたいな)、
そのため、全国的に見れば、そんなに成績いい方ではない気がする。
当時からいわゆる文系科目(ただし、国語は除く)が得意で、好きだった。理系の科目は苦手では無かったしニュートンとか読んでても面白いなーと思う事はあったが、
難しい問題になると途端に解けなくなってしまう。特に、整数問題とかは苦手だったし、計算間違えるしで、受験は暗記数学で乗り切った感じだった。
英語とか歴史が好きだったし文系に進みたいなーとは思っていた。
都内でそこそこ人気の公立高校に進学した。進学実績もそこそこよくて上位だと国公立早慶、真ん中ぐらいの成績で中堅私立に進学する様な学校だった。
あと、多分今もだけど、理系の学校である事を押している学校だった。
ここに進学した理由は、当時通っていた学習塾の先生方にプッシュされたからだ。
自分的にもいいかなーとも思っていたし、実際入って卒業して振りかえってみてもいい学校に入れたなと時々思う。
二年生ぐらいになって、文系理系を選択する必要があった。理系を選択すると物理、数B。文系を選択すると古典、数B。
当時、そこそこ悩んだ。と言うのも、上にも書いたが、文系に進みたかったのだ。
がしかし、理系なら文転しやすい(潰しがきく)事と、父親からの理系への猛プッシュがあったのだ。
父親は理系だったが、私の兄や姉は、みんな文系に進んでしまった。
ほんとかどうか知らないが、どうも、理系が1人欲しかったみたいだ。
進路選択の相談をすると「文系に行って就職どうするの?」「文系に行って何がしたいのか?具体的に考えてるのか?」「とにかく理系に行きなさい。」
とばかり言われた記憶がある。(余談だが、理系に行くと言うと「理系に行って何がしたいの?」と聞かれることが無かったのはいまだに不服であるw)
こんな感じだったのでモヤっとしながらも、理系に進むことになった。
大学受験は当然しんどかった。とにかく点数が出ないのだ。特に物理、数学。
あと、何を血迷ったか、理系が得意でないっていってんのに、国立上位を目指すために化学もやっていた。
(振り返ると、いい経験にはなったが、受験という意味では失敗な選択な気がする。)
当然、理系に進んだのでみんな少なからず理系科目に自信のある奴らばかりで、授業を全く聞いてないのに
放課後に、私に授業の内容教えてくれる人もいたり、それはそれで、ありがたかった。
が、それと同時に「なんでこんなに勉強できないんだろって」思ってしんどかった。「私のいる場所はここでない気がする」って感じてた。
どれだけ理系科目に勉強時間をかけても成績は伸びないが、元から得意だった、英語とかは別に適当にやってもそこそこ点数が取れてしまう。
「なんで、文系選択しなかったんだろ」って結構後悔した。ちょっと、鬱っぽかった気がする。
なんだかんだで、中堅理系私立に受かり、そこに進学することにした。
理系に進んだ人なら分かると思うが、高校の時と全然違うんだよね。
簡単な問題もやったら時間かかったし、無駄に時間ばかり浪費していいた気がする。
だって、私が今までやってたのは暗記数学でしかないから、大学レベルの純粋な数学に太刀打ちできるほど、論理的に物事考えられないもん。
私が数時間がぐらいウンウン唸っていた問題を一目見て解く友人とかいて、「私のいる場所はここでない気がする」って感じてた。
あと、自己肯定感とかだだ下がりだったよね。鬱ぽかった気がする。
一社めはSIer。インフラ寄りの事をやった。卒研では画像処理とかやっていたが、まぁ当然業務は全然それと関係ないよね(みんなそうだよねw)
PMとか取りまとめとかをやらされたけど、よく分からんままやってめっちゃ怒られたな。「私のいる場所(ry
色々あって、プライベートでweb系の勉強をして、4年くらい勤めて、最近無事に転職。
適性があるかと言われると多分ない。コード読めへんし。
が、楽しい。なぜか、昔に比べて自己肯定感が高まっている気がする。楽しいからかしら。
取り立ててオチもない話だったんですが、自分が得意だな、向いているなと思う方向に進んだ方がいいのではというお話です。
自分の苦手な事やる→結果でない→落ち込んで、自己肯定感が下がる→頑張るモチベが下がる→結果でない 以下ループ
って感じになりがちなので、特別な事情がない限りは自分が得意な事をやるのが一番本人に取って良いのだろうなと思います。
就職しやすいから理系に進むという選択は何か私に取ってはあまりあっていなかったのかなとも思いますね。
最後までお読みいただきありがとうございます。
オチもなく勢いで書き出したので、散文になってしまい、申し訳。
2016年7月13日19:41に下記のツイートがされている。
これがトリックだと仮定すると、すぐに思いつくのは、投稿日時をあとから書き換えるハックだと思う。
いくつかの解説記事によると、id は以下のような 64 ビット整数であるようです。
+--------------------+--------------------+-------------------+
timestamp (42 bit) worker-id (10 bit) sequence (12 bit) +--------------------+--------------------+-------------------+
それぞれの意味は以下の通り。細かいことは snowflake のソースコード*2を見て確かめました。
sequence: 同じミリ秒枠内での衝突を回避するためのシーケンス番号(ミリ秒ごとに 0 リセット)
worker-id: この id を発行したサーバ固有の番号 *3
timestamp: System.currentTimeMillis() - 1288834974657L の値。(2010-11-04 10:42:54 頃からの経過ミリ秒)
753177564164653056÷2^22 = 179571524659 (ms)
2.ミリ秒を日に換算
179571524659 (s) = 2078.374128 (day)
3.2010/11/4 10:42:54 の 2078.374128日後を計算する。
(エクセルだと、日付は1日が1なので、単に足し算すれば良い。)
結果は、……なんと2016/7/13 19:41になった!
ということで、ツイートのURLとタイムスタンプは一致していた。びっくりだ。
もし、ツイートのタイムスタンプを後から改ざんすることで前述のツイートを作成したとすると、タイムスタンプと同時にURLも改ざんする必要がある。
もう20年以上ハンドルネーム(死語)で通してきた。Googleアカウントも当然ハンドルにちなんだ名前でとっているのだが、リアルとネットは徹底的に分ける派だし、ネットでは性癖も全開で色々な事をやったのでもはやリアルと結合できない。
たとえば、ググるとエロゲ評論サイトのマイページが出てきてめがね美少女と寝取られ好きなことがすぐにバレるし、かつて、今ではネットの評論家の地位を獲得しNHKにすら我が物顔で出入りする某金髪Twitter芸人と罵り合った過去も出てくる。
ところが、ところがである。
Googleのアカウントを使っていると、様々な情報がGoogleに蓄積されていることがわかる。
さらに、最近Googleは隙あらばリアルに立ち寄った先のREVIEWを乗せれ、と行ってくる。ついうっかりクリックしたら、そのアカウントに結びついた情報としてくっついてしまう。
すると、リアルの自分とハンドルが付き合わされる危険性が高くなるわけだ。
そこで、もう10年以上使い込んだGoogleアカウントをネット専用に切り替え、普段はリアルネームのアカウントを作ってそちらに切り替えるという事をやることにした。
ただし、上手くいくかどうかはわからないので、真似するなら自分で全責任を負って欲しい。そして上手く行かなかったところがあったら知らせて欲しい。
新しいアカウントに結びつけようとするメインアドレスが、旧Googleアカウントに結びつけられている人だけこの作業が必要だ。例えばスマホのキャリアメルアドや、プロバイダのメルアドなど。これらを旧Googleアカウントに連絡先メルアドとして登録している場合にはあらかじめ削除する必要がある。ただしこれも手順をがいる。
まずメインのアカウントのプロフィールの画像を削除してデフォルトに戻す。
なぜこんなことをするかというと、この後、メイン利用のメルアドを分離するのだが、分離した後もこのプロフィール画像がくっついていってしまい、元アカウントと結びつけられる可能性を防止するためだ。
Googleはメルアドを名寄せ情報に使い、許可がある場合は本人がGoogleアカウントに設定している本人のアイコンを自動的にアドレス帳に表示させる機能がある。デフォルトではオフになっているはずだが、なんかのタイミングで間違ってONにされるとまずいので、あらかじめ削除しておく。
次に、新しいアカウントに追加させようとするするメルアドを除去する。
といっても、メインのgmailは変更出来ないのでこれではなく、アカウント再設定用のサブメルアドとして登録されているメルアドを削除する。
削除しておかないと、アカウントを作ろうという時に同じメルアドを登録できないと行って弾かれる。
新しいアカウントを作る。
これは通常通り作る。名前は後から変更できない事を踏まえて、無難なものにしておこう。私は素直に本名の名前部分と01~12までの整数と1~31までの数字、と言ういかにも日付けっぽい数字4桁にした。いかにもネットに詳しくない人が付けそうと言うコンセプトである。(ただしリアル誕生日の日付けではない)
そして、その上でここに、下準備で切り離したメルアドを連絡先のメルアドとして登録する。
ここでのポイントとしては、アカウントの名前は漢字で設定しないと言うことだ。ローマ字表記で。私の名前はありふれた名前だが、漢字にすると絞り込まれやすくなる。
これは、新しいGoogleアカウントで、Gmailに入って、設定→アカウントとインポートで、旧アカウントを読み込めばある程度いける。
ただし……相手は10年以上使い込んだアカウントである。メールもめっちゃたまっていて、結局ちゃんとインポートできなかった。
ただ、これはもうある程度仕方が無いとわりきるしか無い。
幸いにして自分の場合は旧Googleアカウントのメルアドで使っていたサービスはネット上の人格に関するアカウントしか無かったので、それほど移行の手間はかからなかったが、必要に応じてこのタイミングで移行をかけておく。
Androidの場合、一つのAndroidに複数のアカウントが設定できるので、一度両方設定できるので、複数設定すれば良い。
ただ、今回は完全分離が目的なので、リアルのスマホからは旧アカウントは削除した。
この場合、以下は諦めるほか無い。
これらは新アカウントで買い直したり、バックアップを取り直したりした。
同じ事はブラウザにも言え、Googleはアカウントの切替をサポートしているので、両方ログインすればいい。ただ自分の場合、これ以降は、Firefoxでプロファイルを切り分けて、同時ログインはしないようにしている。
これからGoogleアカウントなどをとる人は、リアルでもそのアカウントを使うのだという事を意識してアカウントを作り、あんまりやんちゃはしない方が良いと思う。
俺が使ってるπから切り出した4桁の暗証番号の全集合は、チャンパーノウン定数から切り出した4桁の暗証番号の全集合の真部分集合になるわけだから、チャンパーノウン定数すごい!ww
日本人数学者が彼の分野で最も重要な問題のうちの一つを解いたと主張している。困ったことに、彼が正しいのかどうか殆ど誰も分からないことだ。
2015年10月8日 Davide Castelvecchi
2012年8月30日の或る時、望月新一は静かに彼のウエブサイトに4つの論文をポストした。
論文は膨大(総計して500ページを超える)で密に記号が詰められており、10年以上の孤独な研究の絶頂だった。それらの論文はまた学界の突発的事件となる可能性を持っていた。論文の中で望月はabc予想を解いたと主張した。abc予想は数論において他の誰も解決に近づかなかった27年目の問題だった。彼の証明が正しければ、今世紀で数学の最も驚異な業績となるであろうし、整数を持つ方程式の研究を完全に変革するであろう。
しかし、望月は自身の証明について騒ぎ立てなかった。その有名な数学者は日本の京都大学数理解析研究所(RIMS)で研究に従事しているが、自身の研究を世界のどの仲間にも知らせなかった。彼はただ論文をポストして、世界が見つけるのを待っているのに過ぎなかった。
おそらく論文群を最初に注目したのはRIMSで望月の同僚である玉川安騎男だった。他の研究者達と同様に彼は望月が何年間その予想について研究していて、とうとう研究を終えたことを知った。同じ日に玉川は彼の共同研究者の一人である英国ノッティンガム大学の数論学者イヴァン・フェセンコにそのニューズを電子メールで送った。フェセンコはすぐに論文群をダウンロードし読み始めた。しかし、彼はすぐに"当惑した。それらを理解することは不可能だった"と言う。
フェセンコは数論幾何学という望月の分野の何人かのトップエキスパートに電子メールした。証明の知らせは急速に拡がった。数日内に、熱のこもったおしゃべりが数学ブログやオンラインフォーラムで始まった(Nature http://doi.org/725; 2012を見よ)。だが、多くの研究者達にとって証明に関する早期の意気揚々が急速に懐疑へと変わった。すべての人々(専門分野が望月のものと最も近い人々さえも)はフェセンコと全く同じように論文群に面食らった。証明を仕上げるため望月は彼の分野でも新しい分科をこしらえたが、純粋数学の水準においてさえも驚くほど抽象的なものである。"それを見れば、未来からの、または宇宙からの論文を読んでいるのかも知れぬとちょっと思える"とウィスコンシン大学マディソン校の数論学者ジョーダン・エレンバーグは論文出現の数日後にブログで書いた。
3年間ずっと望月の証明は数学的に未決定のままである。つまり、広くコミュニティによる誤りの指摘も無く、そして認められてもいない。望月は彼の研究を理解出来るために数学の大学院生が約10年かかるだろうと見積り、フェセンコは数論幾何学のエキスパートですら約500時間かかるだろうと考えている。今のところ、証明全体を読めたと言っている数学者は4人しかいない。
これすき。
今家庭教師で中学生教えてるんだけど、中学数学と高校数学って別物だったんだな~って。
中学生までは算数とか数学とか本当に苦手で、高校入りたての時も自分は数学ができないって思い込んでいたから最初はあんまり成績良くなかったんだ。
けど、煩雑な計算はあまり伴わない整数とか、証明とか、「数学的概念」を見つめる分野に入った途端めちゃくちゃ出来るようになった。
中学生の時までは定期テストで50点とかのザコだったのが、高3の全統模試で偏差値70以上はとれるようになったんだよ!!本人がびっくり。
計算は苦手だったからどうあがいてもだるい計算しなきゃいけない微分積分はよくミスってたんだけど、
式の性質を考えて簡潔な形に変形したり、どういう現象が起きているのかを見つめたり、抽象と具体を行ったり来たりするのが数学なんだな~パズルみたいだな~って気づいて好きになっちゃった。
数学の本質は「計算」じゃなくて、「数を使った思考」なんだ!!と。式の本質を見て、うまーく変形したり見方を変えると計算ミスが減ったり、問題解く工程が減ったりして、奥が深い。
中学数学は距離とか重さとか量とか求めるような問題ばかりで、結局算数の延長線上の、生活に当てはめることが多い科目だったけど、
高校数学は純粋な「数の学問」って感じ。数とそれに関する概念やら定理やらを使って、純粋な"数の”問題を論理的に分解して解くシンプルで抽象的な科目だった。
中学数学は単位やら何やら数字以外で注意しなきゃいけない部分が多くて苦手だったんだろうな~って気づいた。
そんな私は大学生になって精神科で発達検査やら面談やら心理テストやらなんやら受けた結果不注意優勢型ADHDとの診断が下りました。ありがとうございました。
「学習指導要領から○○が消えたー。あり得ない。」は、教わった世代のノスタルジーを含むケースが多い。
「ベクトルが消えた!物理が教えられない!」 → 「力の合成くらい物理教師が頑張れ。どうせ微積を使わない高校物理なんか制限だらけだ。」
「行列が消えた!3DCGや機械学習が理解できない!」 → 「大学の線形代数で頑張らせろ。どうせ高校の行列なんてタダの計算練習かパズル。行列式も固有値も教えない程度だ。」
「数学Cがなくなっていた時代がかわいそう」 → 「数学Ⅲ 3単位と数学C 2単位を新しい数学Ⅲ 5単位として教えていただけ。どうせ数学C取ってる奴はほぼ数学Ⅲやってたんだし。」
と個人的には思うのだが、「理工系人材には高校数学の○○が必要だ」というのは高校数学に期待しすぎ。
あとは90%以上の人間が高校まで進学する時代に、共通の教養として必要な内容が高校数学でしょ?
ちなみに新しい学習指導要領でも復活する数学Cまで学習すればベクトルあるよ? 高校物理の力学に間に合わないだけで。
今の学習指導要領で数学Iに統計が入り、箱ひげ図や四分位図が必修だけど、40代以下はこんなのやってないっしょ。
今度はそれらは中学数学に下りていく。統計の検定まで高校数学に入ってくる。
新しい学習指導要領で学ぶ内容は、これら。
数学Ⅰ:① 数と式 ② 図形と計量 ③ 二次関数 ④ データの分析(仮説検定の考え方を含む)
数学A:① 図形の性質 ②場合の数と確率 (期待値を含む) ③数学と人間の活動(整数、ユークリッドの互除法、2進数など)
数学Ⅱ:① いろいろな式 ② 図形と方程式 ③ 指数関数・対数関数 ④ 三角関数 ⑤ 微分・積分の考え
数学B:① 数列 ② 統計的な推測(区間推定及び仮説検定を含む) ③数学と社会生活(散布図に表したデータを一次関数などとみなして処理することも扱う)
数学C:① ベクトル ② 平面上の曲線と複素数平面 ③ 数学的な表現の工夫(工夫された統計グラフや離散グラフや行列などを取り扱う)
ベクトルあるよ?
行列あるよ?
今は、一般受験以外に多様な方法で大学に入学してくる。既習範囲の理解度確認や基礎の定着のために、まともな理工系大学なら昨今は非一般受験組にはe-ラーニングなどで補習や指導をしている。
Int8(整数8-bit)のドット積は、ディープラーニングのインファレンス(推論)向けだ。ニューラルネットワークでは、トレーニング(Training:学習)にはFP16(16-bit浮動小数点)など相対的に高いビット精度が必要だ。しかし、端末側での認識のための推論ではデータ精度を落としても認識精度はそれほど落ちないため、8-bit整数程度の精度が使われることも多い。現在のGPUでは、推論向けでは8-bit整数(Int8)のサポートがカギとなっている。
https://pc.watch.impress.co.jp/docs/column/kaigai/1111755.html
まずは
1. ガロア理論
2. 楕円曲線
この二つは19世紀以前の数学の最高峰であり、また現代数学の多くの分野に関連することから、IUTを目標としない人でも学ぶ価値のある理論だと思います。
またIUTでは楕円曲線のガロア理論を用いて数の加法や乗法の構造を調べるというようなことをしています。
1. ガロア理論
ガロア理論は方程式を解くということを群という対称性を用いて理解するものです。これを用いて5次方程式の解の公式の有無や作図問題などの古典的な問題が解決されました。これを理解するためには代数学、特に群や体について基本的な事を学ぶ必要があります。
さらに整数論に関わるものとして、p進体などを学んだ上で類体論を勉強なさるのがよいと思います。p進体では(普通の対数関数と同じように)logを定義することができ、これはIUTでも重要な役割を果たします。類体論の特別な場合として円分体のガロア理論を理解すると、例えばガウスなんかの整数論の話もより深く理解できると思います。
2. 楕円曲線
楕円曲線は楕円関数論をある種代数的に扱うようなものです。楕円関数というのは、三次式の平方根の積分でこの積分を表すために導入された関数です。19世紀の数学でかなり研究されたものですが、これについては複素解析という複素数平面上で微積分をするということについて理解する必要があります。
さらにその後の発展として、リーマン面や基本群、ホモロジーといった概念が考えられました。基本群やホモロジーというのはトポロジーという分野で研究されているものですが、数論幾何でも重要な役割を果たします。
上の二つの話は独立したものではなく、相互に関連しあうものです。例えば、基本群とガロア群はある意味では同じものだと観ることができます。このような視点を持って整数の研究をするのが数論幾何という分野です。
まとめると、まずはガロア理論を目標として代数の基本的なこと、楕円関数を目標にして複素解析を学ぶのが良いと思います。
上に書いたようなことは数論幾何を専門にするなら学部生ぐらいで知っている話です。これらを踏まえてIUTにより近い専門的な内容を学んでいくのが良いでしょう。私もその辺りについて詳しいことは言えないのですが、例えば京都大学の星先生の書かれたIUTのサーベイをご覧になってみるのが良いのではないでしょうか。