ちしきよく。

雑多系ブログ。みなさんの「何かを知りたい!」という欲を叶えましょう。

理系にはたまらん 暇潰し・面白いサイト3選



あとで読む

今日は、私が暇で暇でたまらないときに「暇つぶし」と称してめぐっているサイトを紹介してみたい。

 

3選とするからには厳選に厳選をしぼっている。

 

が、文字数が結構多いので、忙しい方はまとめだけ読まれると良いだろう。

 

 

Norse Attack Map

Norse Attack Map

特に「ハッキングとか興味あるわ~」という少し危ない人達にはお勧めのサイト。

「世界中で現在進行形で行われているサイバー攻撃」を可視化し、見やすくまとめてくれているサイトである。

f:id:zetakun:20170609125543p:plain

 

上の絵をご覧いただきたい。円形の中心点が攻撃の始点、つまり攻撃している側であり、そこから出ているビームのようなものが、攻撃の終点、攻撃される側に届く。

 

 

 

とはいっても、そもそも「サイバー攻撃」って何ぞや、というレベルの方も楽しめるよう、ここで知識を補完しよう。多少の厳密さを犠牲にわかりやすく説明するのでぜひついてきてほしい。

 

サイバーとは

「サイバー」ということばは聞いたことがあるかもしれない。

 

 

簡単に言えば、「ネット上の、いろんな情報を手に入れたり、流したりするための場所」ということになる。非常にふわっとしているが、皆さんがこのサイトを見ている、ということは、既に「サイバー空間」にいると言ってよい。それだけのものだ。

 

 

そして、このサイバー空間にいわば「毒」を流す行為、それが「サイバー攻撃」である。

 

サイバー攻撃とは

毒にはいろいろある。

 

例えば、メールで不特定多数の人に有害なソフト(プログラム)を送り付け、それを開いた瞬間に作動し、勝手に情報を垂れ流すようにしてみたり、遠隔操作してみたり。

 

あるいは、サイトを改ざんするだとか、どこかのサーバ(情報を蓄えてあるところ)にウイルスを流し込むだとか。

 

もしくは、情報が蓄えてある場所……サーバに意図的に負荷をかけ、サービスを利用不能にするだとか。(Dos(ドス)攻撃と呼ばれる)

 

要するに、「ネット上で行われる悪いこと」が、「サイバー攻撃」である。

悪いことというのはまさに、みんなが想像する「ハッキングみたいなやつ」だ。

 

 

だが、一番簡単な「サイバー攻撃」は、F5連打であろう。

試しにF5ボタンを押してみてほしい。

サイトが再読み込みされるはずだ。

このとき、当然ながらあなたのパソコンには、サーバから新情報(このサイトの情報)が送られるわけだが、送るための道路の幅は限られている。

 

だから、日本人全員がF5ボタンを連打すれば、ここのサーバはパンクしてしまい(道路が渋滞し)、サービスが使えなくなる。

専門的な知識は何一ついらない。ボタンを連打するだけでも、いちおう「サイバー攻撃」になるのだ!

 

見方など

f:id:zetakun:20170609131905p:plain

どんな攻撃が行われているのかは、下の表のattack typesを見なければわからない。

 

例えば一番上のUnited Statesのところは、Portが25、service typeがsmtpと表示されているが、これはメールを送るときに使われるプロトコル(取り決めの種類のこと)だ。

だから、smtpと表示されていたら、それは「メールによるサイバー攻撃」だとわかる!

 

他にも、mysql(マイエスキューエル)、telnet(テルネット)、microsoft-ds、http-altなどいろいろあるが、まあ興味があれば自分で調べてほしい。

 

microsoftの関与?

f:id:zetakun:20170609131623p:plain

 

結構な頻度でMicrosoft Corporationが出てきているが、何かヤマしいことでもあるのだろうか……。

 

なお、アメリカや中国、最近はインドも活発なようだ。

www.youtube.com

この動画では、中国がアメリカにすごい勢いでサイバー攻撃をするさまが写っている。

可視化してみると、日々現実の裏で「サイバー戦争」が行われているのだな、と実感させられる。

 

 

Norse Attack Map

 

ライフゲーム

ライフゲームというのは、生命体の繁栄と衰退とをマスで表現した、単純ながらとても奥が深いゲームのことである。

ゲームとはいえ、勝敗などはない。

とりあえずこの動画の最初のほうを見てもらえればわかると思う。

ルール自体は非常に単純である。

www.youtube.com

 

これを自分でシミュレーションできるのが、このサイトである。

ライフゲーム

 

開いて、試しにいくつかのマスを塗ってみよう。

f:id:zetakun:20170609134245p:plain

その後、下の「Start」というところをクリックすると、勝手に「ゲーム」が始まる。

 

f:id:zetakun:20170609134531p:plain

最終的にこうなって……終わった。これ以上はどれだけ世代を重ねても形が変わらない。

 

だが、うまくやることで、

Conway's Game of Life - Wikipedia

の、一番上の左側のアニメのようになり、ずっと途切れない。

f:id:zetakun:20170609134727p:plain

二つの変な奴がぶつかり、物体が射出される。

見ているだけで飽きない……。

 

Youtubeで"life game"と調べるといくらでも芸術的な作品が出てくる。

 

皆さんも

ライフゲーム

で、作ってみよう。試しにやってみれば、すぐルールは理解できるはずだ。

 

ライフゲームで理解する複雑系

これを紹介したのは、ライフゲームが現実の縮図になっていて、興味深いと思ったからだ。

我々が生きる現実はいわば「複雑系」である。

複雑系というのは、たくさんの部位が集まって相互に関連しあい、全体としてなんらかの性質をもつ「系」(まぁ「セカイ」みたいなもん)のことだ。

 

一番身近な例は「運転」。

 

街中で車を運転して目的地に着きたいとき、どのルートを使うのが最も速いだろうか。

答えは、「わからない」が正解。

なぜなら、車を運転するのは自分だけではないからだ。

他の多数の人がいて、ノロノロ走ったり煽ったり止まったりしている。そしてその人たちも、互いに影響を受け合っている。

 

誰がどんな影響を受けているかを完全に分析するのは非常に難しいため、わからないのだ。

 

そして複雑系ではしばしば、初期条件の違いが後々大きな差になる。

 

例えばある車が黄信号で止まった世界A、止まらなかった世界Bを考えよう。

このたったわずかな差が、系全体(道路状況全体)に大きな差を及ぼし得ることは自明だ。信号で止まれば他の車が右折左折で割り込んでくる。割り込んできた車が世界Aとは違ったふるまいになるのはともかく、そういう車たちが他の車にも影響を及ぼす。

最終的に、最速のルートも変わってくるだろう。

 

 

そしてよく考えれば、金融、経済、自然、気象……実に多くのところに、この「複雑系」が見出されるはずだ。たった一つの初期条件の違いが、のちのち大きな差になってしまう、それも複雑系の難しいところである。

(複雑系は面白いので、後日取り上げてみたい。)

 

 

ライフゲームはそんな複雑系を、数学の苦手な人にもわかりやすく伝えることに成功している。

 

それを示す実例。

 

ライフゲームの複雑系

 

f:id:zetakun:20170609140649p:plain

 こういう模様を作ってみよう。

そのうち花火みたいな図柄が出てきて、ループするはずだ。

f:id:zetakun:20170609140755p:plain

 

さて、もう一度、今度は、

 

f:id:zetakun:20170609141345p:plain

〇をつけたところ、わずか1マスを付け加えてから始めると、

今度はこうなるのだ!

 

f:id:zetakun:20170609141420p:plain

なんと、第3世代にして、全滅してしまった!

 

花火か全滅かの違いは、中心のマスが埋まっていないか、埋まっていたかだけにすぎない。わずかな違いのはずだ。

にも拘らず、このような違いが出てしまった。

マス目どうしが互いに影響し合う、というゲームのルールにより、初期条件のわずかな違いが、最終的な答えに大きく関わる、これが複雑系の面白いところであり、ライフゲームはこれを簡単に伝えてくれる。

 

楽しんでほしい。

ライフゲーム

 

 

グラフ描画サイト

Desmos Graphing Calculator

関数を入力するだけで勝手にグラフを描画してくれるサイト。

f:id:zetakun:20170610013405p:plain

暇つぶしというだけでなく、実用上非常に役に立つ。

 

どうやってグラフを描いているか気になる方もいると思うので解説しておく。

 

グラフの描き方―人間編―

そもそも、私たちがグラフを描く際、いったいどうやってきただろうか。

特に2次関数や3次関数のような曲線のグラフは、人間の手で完璧に書くのが難しい。

 

しかし我々は「フリーハンド」を使うことで、なんとかそれを可能にしてきた。

 

「増減表 グラフ」の画像検索結果

(http://mathtrain.jp/yojigraphより拝借)

 

「増減表」といって、グラフの傾きがどうなってるかなどを書き込む表を完成させたら、それをもとにグラフを描いていく。

 

だがよく考えてほしい。

上の増減表からわかるのは、「ある点において、増加から減少に・減少から増加に転じる」ということ、「ある点で最大・最小をとる」ということだけである。

 

まあつまり、アバウトなのだ。 

 

 

グラフの描き方―コンピュータ編ー

コンピュータはそんな小細工をする必要がない。

我々が増減表を書くのは、グラフの概形を確認するためであり、逆に言えば、概形を確認しなくていいならば、書く必要もない。

 

コンピュータはまさにそんな感じだ。

 

 

(以下、簡単のため、y=f(x)という1変数関数だけの話)

何をするかというと、「手あたり次第xを代入してyを計算し、(x,y)に点をプロット、その点を結んで、近似的にグラフを完成させる」である。

 

f:id:zetakun:20170610001723p:plain

 

ある関数があり、関数の式はわかっているが、グラフがわからない。

コンピュータくんはxをいくつかにわけ、それぞれのxにおけるyの値を求める。

それを対応させ、プロットしていったのが上の図になる。

 

そして、プロットした点と点とを滑らかに繋いでやると、

f:id:zetakun:20170610001914p:plain

こういう風になる。点をとってやると、

f:id:zetakun:20170610001956p:plain

 

これがこの関数の「近似的な(絶対的に正しいことはないが、まあ似通ってる)グラフ」となる。

当然、点の数が多いほうが、より正確な近似ができる。

さっきの例でいえば、もし点が少ないと、

 

f:id:zetakun:20170610002537p:plain

このように、似ても似つかない、近似とも呼べないものが出来上がる可能性は高くなる。

 

原理はご理解いただけただろうか。

 

面白いグラフ

面白いグラフを描いたので、見て行ってほしい。

皆さんも作ってみて下さい。

連絡いただければここで紹介しますよ。

 

 

f:id:zetakun:20170610003448p:plain

まずはこれ。

f:id:zetakun:20170610003514p:plain

縮小すると、

f:id:zetakun:20170610003550p:plain

なんつーか、

 

グロい……けど美しい。壁みたい。

 

割かし単純な関数でもこういうのが描けちゃう。

 

f:id:zetakun:20170610003930p:plain

次。

f:id:zetakun:20170610004002p:plain

 

おお、美しい……

 

f:id:zetakun:20170610004603p:plain

f:id:zetakun:20170610004633p:plain

 

縮小する。

 

f:id:zetakun:20170610004713p:plain

 

何があった。

 

f:id:zetakun:20170610005725p:plain

はーと。

f:id:zetakun:20170610005946p:plain

無限? 

 

 

まあこんな感じ。ぶっちゃけこれだけで3時間は平気で潰れる。

 

そのうちこれ専門の記事を書くかも。

面白すぎる。

 

 

まとめ

本日は"Norse Attack Map"、"ライフゲーム"、"グラフ描画サイトDesmos"の3つを紹介した。

Norse Attack Map

ライフゲーム

Desmos Graphing Calculator

 

皆さんの暇が少しでも潰れればよいと願う。

欲を言えば、理系科目に興味を抱いてくれたら、これ以上幸せなことはない。

 

なおバチバチの理系なので私は全然暇じゃない模様