移動式のブログ

ガジェット、アニメ、プログラミング、考えたことその他色々・・・特にこれといったテーマはないカオスなブログです。

祝 ブログ投稿数100記事!!

投稿したブログの総記事数が100記事になった


f:id:idoushiki:20170719192937p:plain


自己満足で書いている駄文が100記事たまったかあ…
しかし、ブログで100記事書くことが目的でブログ書いていたわけではないのでどうでもいい。
たぶん俺はブログを死ぬまで不定期的に投稿し続けると思う。
しかし、どうでもいいこととは言っても、「100記事目」となかなかキリが良い数字なので少し気分が良い。
また、時々記事に星☆をくれる人がいたり、ブログの読者が何人か増えたりしてなかなか嬉しいものだ。



ブログは気軽にアウトプットができる貴重な手段だ。何かを知ったり、何かを考えたりしたときにそれを吐き出さないともったいない。
どんなに色々な事を考えていても、それを表現しなければ考えていないのと同じだ。
自分の脳内の様子をネット上にぶちまけられるって結構楽しいな~。


さらに、自分がかいたブログはインターネットが地球上から消えたりブログのサーバーを運営している会社がつぶれたりしない限りほぼ永久に残るところも良い。

自分自身は死んでも、自分自身のミーム(文化についての遺伝子)がずっと世界で生き続けるということだ。
自分の考えたことが何世紀も後の世界にそのまま残り続けるって考えると面白い。

二分探索 アルゴリズム

二分探索


前回の線形探索は、配列の先頭からしりまで1つずつ順番に調べていく方法だった。
idoushiki.hatenablog.com



二分探索アルゴリズムは線形探索よりもすぐに目的の値を探すことが出来る。
しかし、配列内のデータが昇順または降順に並んでいる必要がある。

二分探索の流れ

f:id:idoushiki:20170719175953p:plain

1.今回の配列aに入っている値の数は5個なので、この図のnは5になる。
Lに5、Hに0を代入する。

2.LとHを足して2で割ったものをkに代入する(割ったとき、小数点以下切り捨て

3.a[k]とxの値が同じなら"xは存在する"と出力して終了する
LがHより大きくなったら"xは存在しない"と出力して終了する

しかし、a[k]がxより大きかったらH-1をkに代入してa[k]がxより小さかったらk+1をLに代入して、2に戻る。

イメージ図
f:id:idoushiki:20170719181914p:plain
このように、a[k]がxと同じ値になるまで探索する範囲を狭めていくような感じ。



c言語でかいたソースコード

C言語 文字列比較 strcmp

c言語をいじくっていて、日本語を比較しようと試みたがうまくいかない



ダメなコード


例えば、上のソースコードは、scanfで入力した文字列が配列bの中に存在していたら「ばかやろう」と出力されるように組んだものだ。
if(a==b[i])となっているので、aに入れた文字列とb[i]に入っている文字列を比較して、同じなら"ばかやろう"と表示される。

しかし、このコードは上手く動かない。

配列b内に存在しているはずの"アホ"や"まぬけ"などと入力しても、"ばかやろう"と返してくれない。


このコードのまずかったところは、文字列aと文字列b[i]を直接このように→ a==b[i] 比較していたところだ。



C言語で文字列を比較したい場合、strcmp関数を使えば良いらしい。
この関数は、文字列を比較して、同じ文字列の時に0を返す。
つまり、strcmp(a,b[i])と書いたときにaとb[i]が同じなら、strcmp(a,b[i])は0となるのだ


if文の中をstrcmp(a,b[i])==0に組み替えて、アホとか入力してみたら今度は"ばかやろう"と出力されたので、成功だ。



上手くいったコード


まとめとして、
C言語で、漢字とかひらがなとかの文字列を照合したり比較したりするときはstrcmpを使えばよい


全角文字は、配列の要素数を2~3個分使うので、サイズを大きめに確保しておく。

今回は、a[7]だと、"まぬけ"の文字列をscanfで読み取れたが、
[]の中を6にしたら"まぬけ"と入力しても上手く動かなかった。




新・明解C言語 入門編 (明解シリーズ)

新品価格
¥2,360から
(2018/8/5 19:22時点)

精神的エネルギー保存の法則

(死ぬことの不幸度)-(生きている幸福度)=0


例えば、嫌な事ばかりあって、不幸な思いをしている人間は不幸ではない。
そして、自分の望むものは何でも手に入る楽しい生活を送っている人間は幸せであるとは限らない。



生きている間に幸せだと、死にたくなくなる


どうして楽しい生活を送っている人間が幸せであるとは言えないのか

居心地がよくて、楽しい場所にいたくないと思う人間はほぼいないと思う。
自分の好きなものに囲まれている場所が苦痛を感じことはないだろう。

また、日曜日の夕方に憂鬱感が襲ってくる「さざえさん症候群」を味わう人は日本にたくさんいると思う。
その憂鬱も「楽しい休みが終わって、嫌な仕事(または学校)が始まる」と思い込んでいるから感じるわけである。

つまり、人生が楽しい人間にとって「死ぬことへの恐怖」は「日曜日の夕方の憂鬱」のようなものだ。
人生が楽しいと、その幸福を手放すのが惜しくなる。そのためできる事ならもっと生きていたいと欲する。

生きている間に不幸だと、死にたくなる

それなら逆に金曜日の夕方に「明日は休みである」というわくわくを感じる人は多いと思う。
そのわくわくは「嫌な仕事(や学校)が終わって明日から休みであるから、嫌な事から解放されて幸せ」と思うからだろう。

こちらは不幸な人にとっての「自殺」のようなものだ。
人生という苦行から逃れるために「死」という永遠の休日を求めてしまうのだ。

生きていることが苦痛なものだから、「死」へと逃れて苦痛から解放される。というのは自殺する理由のうち一つだろう。
つまり、自分から死んでしまうほど生きていることが辛いのだから、自殺した人にとって、「死」とは生きていることよりも幸せである状態であるといえる。
なぜなら、生きていることのほうが幸せであるのなら、死のうとは思わないからだ。死ぬのはいつでもできるが、生き返ることはできない。
それでもなお、死を欲するということは、生きていることよりも死んでいることのほうが楽であると判断したから自殺するのである。

精神を病んで正常な判断が出来なくなり、死ぬことに希望を見出してしまたり、苦痛から逃れるために自殺したりするというのはそれだ辛い思いをしたからである。

つまり、自分自身が不幸であると、死ぬことよりも生きていることが苦痛であるということだ。





上の2パターンの例からして、

生きている間に得た幸福は、その幸福を手放す苦痛によって相殺される

死ぬことへの恐怖は、生きていて味わう不幸から逃れられる幸福によって相殺される

ということだ。


これを、精神的エネルギー保存の法則と命名しよう。

人間の人生において、どれだけ幸福かを表す「幸福度」という度数が存在するとしたら以下のような式になる。


死ぬことの不幸度)-(生きている幸福度)=0





また、これは、人間の様々な思い込みにおいて適用できる。

例えばこれは

(期待外れ度)-(期待度)=0

ある物事Aに期待すればするほど、物事Aの期待に対する結果の満足度が下がる。
つまり期待していたのに、期待通りにならなかったら不満を感じることを表している。
もとから良い結果など出るわけがないとあきらめていた場合、少しでも良い結果が出ると、期待していた時よりも相対的に結果に対する満足度が上がる。

つまり、大きな期待によって得られる高揚感は期待外れの悪い結果によって打ち消されて0になり、全然期待していなくて、マイナスだった期待は予想外の良い結果によって不信感が相殺されて、0になるということだ。


我が道を行け


どんなに不幸でも幸せでも、死ぬときにはそれら互いに相殺しあって0になる。
つまり、どんな生き方をしても同じ結果が待っているのだから、自分の納得のいくように好きなように生きていくことが良いということだ。
誰もがみんな同じ目的地に着くのであれば、目的地に着くまでの過程を自分の納得のいくものにしたほうが良い。

ホームレスでもニートでも社長でも、自分の好きなように生きていれば、それでよい。
人間はどんどん自分の好きなように自分勝手に生きていけばよい。
もちろん、自分の納得がいかない生き方をするのも、本人がそう望んでそうしているのならそれはそれで良い。

異性、物、お金、楽しい経験…欲しいものがあるなら飛びつこう

学校や仕事が嫌ならやめよう

生きているのが嫌で死ぬのも本人の自由だ

人間なんて法律を破らない範囲で自分のやりたいことをやりたいだけやればよい。

あなたにとってあなたの夢ほど大切なものなど存在しない、自分にとっても自分の夢よりも大切なものなんて存在しない。
「自分の夢よりも家族のほうが大切だ」とか「人のためになることをしたい」みたいなこと言う人は、「人のために何かする」事が夢なのだからそれは自分の夢であることに変わりはないのでそうすればよい。

線形探索 アルゴリズム

基本的なアルゴリズムに「線形探索」というものがある。
このアルゴリズムはデータの先頭から順番に探したいデータを調べていくやり方だ。



f:id:idoushiki:20170716181327p:plain



Javascriptソースコード

上のソースコードでは、"5"を探すことになっている。

"5"をa[N]の中から探す場合

探したい値"5"をbに代入する。

whileのループに入ったら、a[i]の値とbの値が同じになるまでiを1ずつ増やしていく。

a[0]a[1]....a[i]と探していき、a[2]になったときにa[i]とbの値が一致するので、whileから抜け出す。

そして、if文で、a[i]のiが4未満なら"5"を探したことに成功したことになるので、a[i]を出力する。

a[N]のなかにbが存在しない場合
bに100を代入したとすると、a[i]の中に入っている値が100になるまでiが増えていく。
しかし、今回のa[N]のなかに100は存在しないのでiがNの値を超えるので、ループから抜け出す。
条件の分岐でiがNの数を超えているので、「失敗」になる。

宇宙の膨張や暗黒物質

宇宙を構成するエネルギーの大半はダークマターダークエネルギー

現在118種類の元素が発見されている。
水素ヘリウムリチウム…と、たくさん種類があると思う。
そして、この世界にある物質は水素のような、元素がたくさん集まって形成されている。

しかし、この宇宙を占めるそれら元素の割合は、約5パーセントほどしか無いようだ。

宇宙全体の質量に対する、宇宙全体にある元素の割合が少ないようだ。
つまり、宇宙にあるすべての元素をかき集めても、その質量の合計は宇宙にあるはずの質量よりもずっと小さいからおかしいということだ。
そのため、宇宙には一般的に知られている物質以外に「ダークマター」という目に見えない物質が存在しているのではないかと言われている。

ダークマターは、重力レンズによって観測することが出来る。
光は、重力によって曲げられるので、その性質を利用してダークマターを見るということだ。
ブラックホールも、重力レンズで見ることが出来る。

ダークエネルギーは宇宙の膨張と関係がある

宇宙は誕生して以来、膨張し続けていることを知っている人は多いと思う。
宇宙が膨張していることは、「ドップラー効果」によってわかったようだ。
理科の教科書とかでも出てくるように、救急車が遠ざかっていくと音の波長が長くなって、低い音になっていく。逆に救急車がこちらに近づいていくと音の波長が短くなっていく高い音になっていく。

光も、音と同じように「波」としての性質を持ているので、ドップラー効果が現れることになる。
そのため、観測地点から遠ざかっていくものを通った光は波長が長くなる。光の波長が長くなって赤くなっていくことを「赤方偏移」という。

宇宙が広がっていくということは、地球から宇宙の端が遠ざかっていくことになるので、光の波長は長くなる。そして、光の波長が長くしていくと、「マイクロ波」になる。

宇宙が広がっていくことによって起こる赤方偏移で発生したマイクロ波が観測されたので、「宇宙は膨張している」ということが発見された。

宇宙が膨張し続けて、さらにいろいろな銀河とかが誕生していくと、宇宙全体の質量は大きくなっていく。
そうなると、やがて自らの質量で宇宙の膨張が止まったり宇宙が縮んだりするのではないかと予想されていた。


しかし、実際には、宇宙の膨張するスピードは速くなっているようだ。
そのため、宇宙が縮もうとするのを止めて、宇宙を広げようとする力があるはず。そのエネルギーが「ダークエネルギー」とも言われている。

Gmail アプリ パスワードを確認

Gmailスマホアプリ版について

f:id:idoushiki:20170614174823p:plain
f:id:idoushiki:20170614174829p:plain



パスワードは「スマホのパスワード」を入力してください

Gmailのアプリに新しいアカウントを追加しようと思った。
「アカウント追加」を選択して、アカウントを追加しようとしたところ、「パスワードの確認」と表示されたので、現在のGoogleアカウントのパスワードを入力した。


しかし、「もう一度お試しください」と表示されたので、パスワードを間違えたのだろう。
もう一度、慎重にパスワードを入力してみるものの、何度も何度も失敗する。
もしかしたら、自分が使っているスマホのパスワードの事を言っているんじゃないかと思い、試しに入力してみたところ、無事成功。

Gmailのアプリを使っているのだから、「パスワードを入力してください」表示されても、Googleアカウントのパスワードの事なのかと思ってしまう。
そのため、スマホのロック解除のパスワード」を入力することを表示してほしい。そうでないとわかりづらい。