移動式のブログ

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

バブルソート

バブルソート

バブルソートは、隣り合う数の大きさを比べて並べ替えていく方法だ。

f:id:idoushiki:20170724200218p:plain
この図では、右端から左端へと比べていく。
そして、n番目にある数とn-1番目にある数を比べてn-1番目の数が大きかったらn番目の数と入れ替える。
これを繰り返していくと、左端に1番小さい数がきて、右に行くにしたがって大きくなっていく。左から右に昇順のならびになる。


c言語ソースコード

長距離散歩とニート株式会社と花火

東京の足立区で花火大会があることを当日の数日前に知ったので、なんだか衝動的に行きたくなった。

と、いうことですぐに土曜日に出発できるように
前日の金曜日にリュックの中に荷物を突っ込んだ。
そして、20時ぐらいに寝た。


旅はほぼ無計画でするぐらいが面白い(無計画で海外の紛争地域などに行く場合は死なないように計画的にいこうね)。

そしてまずは上野に電車で向かった。

f:id:idoushiki:20170724144937j:plain
上野、またここに来てしまったかあ。




idoushiki.hatenablog.com
この記事にも以前行ったときの上野駅の写真がある。この記事を書いた日付からして4か月ぶりぐらいか




東京は駅が多いので、適当に歩き回っていて途中で疲れても電車が使えるという安心感があるからよい。
疲れても電車で楽に帰れるという安心感があるから長距離散歩を東京でしたくなるのだろうか。
自分の住んでいるところから遠い場所を散歩するのは非日常感があって良い。冒険だ。
あと、あまり明確に予定とか決めずになんとなくぶらぶらするのが好きだ。
どこをどれぐらい見に行くとか明確に決めていると、忙しくなり、時間に追われるような感じがして焦燥感に駆られる。






東京の上野に到着したらまず、適当に周辺を散策した。
その後は、南千住のほうに歩いて行った。
南千住駅の近くにあるロイヤルホームセンターの駐車場でスカイツリーが良い感じに見えそうなので、そのホームセンターに行ってみたところ、さらなる発見があった。

f:id:idoushiki:20170724171545j:plain
スカイツリー


スカイツリーが良い感じに見えることはもちろん、この場所はphaさんのブログに乗っていた写真とほぼ同じ場所なのではないか。


pha.hateblo.jp
過去にネットでみた写真とほぼ同じ場所の景色に巡り合うなんてすごいなー。
べつにこの写真の場所のを知っているわけでもなかったので偶然の出来事だ。
この偶然さと、眺めの良さの二つの理由で感動した。





そして次に、堀切駅を目指して歩いた。
特に用があるわけでもないが、以前電車でこの駅に行ったことがあったのでなんとなくここを目的地にした。


堀切駅のある場所は面白い。
荒川と隅田川の間にあるというところが良い。
そして駅の近くにある水門みたいなやつが面白い。
水門に書かれているマークはなんだろうと気になっていたが、船の交通標識みたいなやつらしい。
面白い理由はこの標識が勲章みたいに見えるからだ。
軍隊の、将軍とかの軍服にたくさんワッペンみたいなやつとか勲章がついているのだが、それを連想したのだ。

f:id:idoushiki:20170724131050j:plain
水門将軍



色々な場所を歩いていると、比較的古い感じの街の向こう側にスカイツリーや高層ビルなどの未来感ただよう建造物がある景色を見る。
この未来と過去の風景のコラボレーションが素晴らしい。




上野から南千住の方の方角に向かってうろちょろしていたら合計で10kmぐらい歩いていたせいか足が痛い。
f:id:idoushiki:20170724133816p:plain
上野から南千住駅まで3.5km。
しかし、この画像のルートで歩いたわけでないのでもっとたくさんいどうしたな。
そしてその後、隅田川を超えて、堀切駅付近まで行って荒川沿いを歩いた後にまた南千住に引き返したのでやはり10km以上は移動したのだろう。


f:id:idoushiki:20170724131746j:plain
隅田川





久しぶりにたくさん歩いて疲れた。
しかし、思ったほどつらくはない。
自分の好きでやっている行動に関しては苦痛ではないのだろう。



もうつかれたので、ファミレスで花火始まるまで時間つぶしていようと思ったが、土曜日にはニート株式会社のシェアハウスで持ち寄り飲み会というものをやっていて、さらにその日は足立区の花火大会に行くとレンタルニートがツイートしていた。


せっかく東京まで来たのだからこの機会にその集まりに参加してみようと思った。
そのためレンタルニートの仲さんに参加してもよいか訪ねたところ、OK。
レンタルニート仲さんとその知り合いたちと花火を見に行くことになった。




ニー株のシェアハウスは梅島にあり、花火が見える場所に近いので徒歩ですぐに花火を見に行けた。



f:id:idoushiki:20170724125410j:plain
ふぁいあわーくす。

俺の地元の花火大会を見る前に大規模な花火を見てしまったので、地元の花火が物足りなくなってしまうかもしれない。

東京の花火大会なだけあり、なかなか人が多い。ムスカ大佐がいたら「人がごみのようだ」と言ってそうだ。
こんなにたくさん人がいて、自分の変わりはいくらでもいるのだから働きたくないという言葉に共感するな~。

花火は大迫力で良かったが、少し疲れた。

そのご、みんなで飲んだり食べたりしたあと、麻雀やカードゲームなどをやって日付が変わっても夜更かしをし続けた。


ネットでみる有名人や初対面の人たちと花火見に行き日付変わるまでゲームやっていた。
なんだか現実なのか夢なのかよくわからない非現実的な気分だったので良かった。

この日、ほぼ眠っていなかったが、夢は見ることができたという気分だ。




f:id:idoushiki:20170724133526j:plain
猫がペットボトルで遊んでいる。かわいい


ニート株式会社やレンタルニートについて
ameblo.jp
neet.co.jp

ニー株が「ニートたいむ」という本をつくっていたが、また何か新しい本を作る予定らしい。
neetume.thebase.in
にーとたいむはこのBASEというサイトで販売している。

祝 ブログ投稿数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にしたら"まぬけ"と入力しても上手く動かなかった。

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

(死ぬことの不幸度)-(生きている幸福度)=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の数を超えているので、「失敗」になる。