はてなキーワード: 整数とは
中学高校の数学から、いわゆるユークリッド幾何学は廃止してよい。理由は単純明快で、何の役にも立たないからだ。
大学に入ったら、どの学部に行っても、「補助線を引いて、相似な三角形を作って〜」などと言ったパズルをやることは絶対にない。メネラウスの定理を高校卒業以降(高校数学の指導以外で)使ったことのある現代人はいないだろう。こういうことは、別に高等数学の知識の無い高校生でも、常識で考えて分かると思う。たとえば工学で、弧長や面積を測定する機器が必要になったとして、補助線パズルが適用できるごく一部の多角形などしか測れないのでは話にならない。現代の数学および科学技術を支えているのは、三角関数やベクトルや微分積分などを基礎とする解析的な手法である。
もちろん、たとえば三角比を定義するには「三角形の内角の和は180°である」とか「2角が等しい三角形は相似である」等のユークリッド幾何学の定理が必要になる。そういうものを全て廃止せよと言っているわけではない。しかし、余弦定理まで証明してしまえば、原理的にはユークリッド幾何学の問題は解ける。また、実用上もそれで問題ない。したがって、余弦定理を初等的な方法で示したら、ユークリッド幾何学の手法はお役御免でよい。
これらはいずれも、高等数学を学ぶ際に欠かせない基礎となる分野である。仮にユークリッド幾何学が何らかの場面で使われるとしても、いくらなんでも微分積分などと同等以上に重要だと主張する人はいないだろう。
現在、これらの分野は十分に教えられていない。微分方程式と一次変換は現在(2020年5月)のカリキュラムでは教えられておらず、ベクトルは文系の範囲から除かれ、代わりにほとんど内容の無い統計分野が教えられている。また、高校生にもなって、コンパスと定規による作図みたいなくだらないことをやっている。本当に、どうかしているとしか言い様がない。
ユークリッド幾何学を教えるべきとする根拠の代表的なものは、証明の考えに触れられるというものだ。つまり、代数や解析は計算が主体であるが、ユークリッド幾何学は証明が主体なので、数学的な思考力を鍛えられるというものだ。
しかし、これは明らかに間違っている。別にユークリッド幾何学の分野に限らず、数学のあらゆる命題は証明されなければならないからだ。実際、高校数学の教科書を読めば、三角関数の加法定理や、微分のライプニッツ則など、証明が載っている。そもそも、数学の問題は全て証明問題である。関数の極値問題は、単に微分が0になる点を計算するだけではなく、そこが実際に極値であることを定義に基づいて示さねばならない。数学的思考力を養うのに、ユークリッド幾何学が他の分野より効果的だという根拠は無い。
https://www.nicovideo.jp/watch/sm36233489
また紫の重さを x, 黄の重さを y, 橙の重さを z とします。
与式は以下の通りです。
x+2 > y+z+1
x+z > y+2
x+z = 2z+2
y+1 = z+2
===
それぞれを整理すると
x+1 > y+z ... (1)
x+z > y+2 ... (2)
x = z+2 ... (3)
y = z+1 ... (4)
---
(1) について (3), (4) より
x+1 > y+z
⇔ 2 > z ... (5)
---
(2) について (3), (4) より
x+z > y+2
⇔ (z+2)+z > (z+1)+2
⇔ 2z+2 > z+3
⇔ z > 1 ... (6)
---
(5), (6) より
2 > z > 1 ... (7)
---
(7), (3) より
2 > z > 1
⇔ 4 > z+2 > 3
⇔ 4 > x > 3 ... (8)
---
(7), (4) より
2 > z > 1
⇔ 3 > z+1 > 2
⇔ 3 > y > 2 ...(9)
---
(7), (8), (9) より
x > 3 > y > 2 > z > 1 ... (10)
===
本題は 3 = Ax+By+Cz を満たす A, B, C を求めることです。ただし A, B, C は非負の整数です。
(10) より、
3 > y > 2 なので B は 0 または 1 ですが、 B = 1 のとき C = 1 とすると 3 を超えてしまう ( y + z > 3 ) ため、やはり B = 0 であることがわかります。
たくはによりもおおきくてさんよりもちいさいという認識でかまいませんか?たくが実数であれば整数部分はにであるということになりますがフェミの方々の総意ということでよろしいのですか?
----
整数a,b,c,dとし、
とする。さらに、
である。
----
であるが、f(x)は2次式の曲線であり、1次式のg(x)、-g(x)の直線とは、どちらも3点で交わることはない。
よって、この等式は、g(x)につく符号はすべて+、もしくは、すべて-になることはない。
この等式のf(x)とg(x)をx=1,2,3でそれぞれ展開すると、
ただし右辺のcとdは変数であるため、変数の算出時には右辺に付く+と-は入れ替えることができる。
よって、この3等式のうち、1つの等式のみのgに付く符号が違う、3パターンのみ考えれば良い。
また、3等式から4変数を求めるため、4変数はパラメータ変数を含む値になる。
----
1つ目と2つ目の等式より
この値を3つ目の等式に代入することで、
が得られる。
nを整数とし、a=n とすると
つまり、
である。
この式にx=1,2,3をそれぞれ代入すると、
であり、問題の条件を満たしている。
より、x=1もしくはx=-2n-6のときに成立する。
となる。n=-4ならx=2になるが、それ以外の整数nではxは1,2,3以外の整数になり条件を満たさない。
また、f(x)=-g(x)とすると、
であり、x=2,3のときのみ成立する。
よって、n=-4のときの
のみ条件が成立する。
----
1つ目と2つ目の等式より
この値を3つ目の等式に代入することで、
が得られるが、この等式を満たす整数a,bの組は存在しないので、この符号パターンにはならない。
----
1つ目と2つ目の等式より
この値を3つ目の等式に代入することで、
が得られる。
整数mとし、a=mとすると、
つまり、
である。この式にx=1,2,3をそれぞれ代入すると、
であり、問題の条件を満たしている。
より、これを満たすのはx=1,2のみである。
一方、f(x)=-g(x)とすると、
であり、これを満たすのは、x=3もしくは、x=-2m-6である。
m=-4のとき、x=2となるが、それ以外の整数mではxは1,2,3以外の値になる。
よって、条件を満たすためにはm=-4でなくてはいけない。よって、
ただし、この式は先の式と同じ式である。これはf(2)=g(2)=0であるために起こった。
----
である。
整数列a1...aNとし、a1からaLまでの部分列の和をsLとする(L=1...N)。
s1...sNはN個あり、sLをNで割った余りは最大0からN-1までのN個ある。
A. Nで割った余りが0になるsLが存在していれば、a1...aLがその和がNで割り切れる部分列である。
B. どのsLもNで割った余りが0にならなければ、取りうる余りは1...N-1の最大N-1個である。
取りうる余りは多くてもN-1個のため、N個のs1...sNのうち少なくとも2つは、Nで割ると同じ余りになるものが存在する(鳩の巣原理)。
Windowsのフォントがクソ(日本語フォント編) │ ├┬ 標準搭載のフォントがクソ ││ │├┬ MS(P│UI)ゴシックがクソ │││ ││├── 埋め込みビットマップのせいで文字がガタガタ (アンチエイリアシング派) │││ ││├── ひらがなカタカナの横幅を縮めただけの妥協の産物 (MS UIゴシック否定派) │││ ││└── アウトラインも醜悪 (MSゴシック全否定派) ││ │├┬ メイリオがクソ │││ ││├── ヒンティングのせいで字体とバランスが崩れている (ヒンティング否定派) │││ ││├── 標準の行間がありすぎて扱いにくい (間延び行間否定派) │││ ││└── 字体が幼稚に見える (メイリオ全否定派) ││ │├┬ Meiryo UIがクソ │││ ││├── ヒンティングのせいで字体が崩れている (ヒンティング否定派) │││ ││└── かなとアルファベットの横幅を縮めただけの妥協の産物 (Meiryo UI全否定派) ││ │└┬ Yu Gothic UIがクソ │ │ │ ├── (初期Windows10で顕著)ヒンティング手抜きでバランス総崩れ (ヒンティング否定派) │ │ │ ├── 游ゴシックから横幅を縮めただけの妥協の産物? (Yu Gothic UI全否定派) │ │ │ └── Meiryo UIの方がまだ読みやすい (Yu Gothic UI否定・Meiryo UI消極的肯定派) │ ├┬ フォントレンダリングがクソ ││ │├┬ GDIとClearType │││ ││├── 埋め込みビットマップを優先するのがクソ (アンチエイリアシング派) │││ ││├── 縦方向のアンチエイリアシングがなく斜め線がガタガタ (アンチエイリアシング派) │││ ││├── 偽色出すぎ (ClearType否定派) │││ ││├── ヒンティングを無効化できない (ヒンティング否定派) │││ ││├── フォントサイズがおかしい。特に、ポイントが1.5の整数倍でない場合に顕著 (サイズ厳格派) │││ ││├── OpenTypeフォントのスムージングが薄すぎる (調整力不足派) │││ ││└── ClearTypeチューナー使っても線幅細すぎ、ガタガタすぎる (GDI,ClearType全否定派) ││ │└┬ DirectWrite │ │ │ ├── 基本的にヒンティングを無効化できない (ヒンティング否定派) │ │ │ ├── 調整できるはずなのに調整機能を用意していないアプリがある (調整力不足派) │ │ │ ├── OSの共通設定が存在しない (調整力不足派) │ │ │ └── 調整してもMacTypeに勝てない (MacType教) ......
for(i=2; i<=num; i++){ if(i == num){ // prime }else if((num % i) == 0){ // non prime break; } }
このコードの後半の、
if((num % i) == 0)
は、「numがnum未満のある数で割り切れたら」という意味。つまり、素数でないことを示している。
そして、
f(i == num)
は、「最後まで残ったら」という意味。それ未満の全ての数で割り切れないならそれは当然素数。
分からなくなった時は適当な数を代入して動作を確かめてみるのがいい。
あと、1つの整数が素数かどうかを判定するのには計算量の関係でミラー・ラビン法を使うのが普通。理解に深い数学の知識が必要なので、入門レベルではない。
「キーボードから数を入力させて、その数が素数か否かを判断させるコード」なんだけど
#include <stdio.h> int main(void) { int num,i; printf("2以上の整数を入力してください。"); scanf("%d,&amp;num"); for(i=2; 以下num; i++){ if(i == num){ printf("%dは素数です。",num); } else if((num % i) == 0){ printf("%dは素数ではありません。",num);l breakl; } } return 0; }
これがそのコードの例文。で俺の疑問箇所なんですが
for(i=2; i以下num; i++){ if(i == num){ printf("%dは素数です。",num); }
ここのコードでどうして変数「num」が素数であると判断できるのかが良く分からないんです。
俺が馬鹿で文系脳でプログラミングの才能0だから分からないというのはほぼ確定なんだけど、それでもここのとこが理解できないとモヤモヤして夜も眠れなそうなのでどうか教えて下さい。
偶数奇数を判定するための途方もないプログラミングコードが話題に
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アカウントなどをとる人は、リアルでもそのアカウントを使うのだという事を意識してアカウントを作り、あんまりやんちゃはしない方が良いと思う。