やはり出歩かないとネタに困ります ほか
やはり出歩かないとネタに困ります
このところうまく眠れないのと朝っぱらから
うええええ吐きそうううううう
— ゆうなんとか@中間発表乗り切れてないさん (@yuu_hara) 11月 27, 2012
とか言っちゃうくらいなのとで、家でずっとおとなしくしていました。
いつぞや言ったと思いますが、やっぱりネタがなくなります。普段から体調に気を付けないといけませんね。
.gitignoreでておくれたおはなし
研究で使っているソースコードをGitHubのプライベートリポジトリにあげることにしました。
しかしこれ便利ですね。Gitサーバー立てなくてもいいのですごく助かります。
で、このリポジトリをうちでさくっとcloneして動かしてみようと思ったのですが、どうも動いてくれない。なぜかと思ったら…
設定のコアがあるディレクトリが見当たらない
もしやと思って.gitignoreを見てみると、やっぱりパスが書いてありました。
迂闊にもほどがあります。気を付けないと…
0で割り算
最近ちょっと気になっている人が多い気がするのでまとめです。
算数的に考えてみる
たとえば、10個あるりんごを何人かに分けるという問題を考えましょう。
10人で分けるなら10÷10=1でひとり1個、5人なら10÷5=2でひとり2個…といった感じになりますね。
では、10個のりんごを0人で分けるとしたらどうなるでしょう?
「りんごがほしい人」がいないので考える意味がない、ということになると思います。
引き算の繰り返しということで考えてみる
○÷△=□…◇ というあまりのある割り算を考えます。*1
これは、「○から△を繰り返しいて、◇が△よりも小さくなったらやめる」という演算と解釈できます。△が1以上ならいつかは◇が△よりも小さくなります。しかし、△が0のときは、○からは何度でも引くことができてしまいます。これでは都合が悪いですね。
極限をつかってみる
さっきまでのお話から少々飛躍して極限で考えてみます。
ある正の実数aとxを考えます。
の結果は、反比例について、xを正数側からy軸に近づけていって、x=0となったところですね。このときの結果は、正の∞です。
一方、と、負数側から近づけたらどうなるでしょうか。これは負の∞となります。
このように、極限を使えば一応定義することはできるけど、その0が正数側から近づいた結果の0か負数側から近づいた0かで結果が大きく変わってしまいます。なので、という式をぽんとおかれても、値を決めようがないということになります。
プログラミングではどうなってるの?
例外を吐く言語と、∞を返す言語の二つに分かれるようです。私が試せる範囲だと、
例外を吐く
$ ruby -e 'puts 1/0' -e:1:in `/': divided by 0 (ZeroDivisionError) from -e:1:in `<main>'
$ php -r 'echo 1/0;' PHP Warning: Division by zero in Command line code on line 1
namespace Program { class Div0 { static void Main(string[] args) { int zero = 0; System.Console.WriteLine(1 / zero); } } } //System.DivideByZeroExceptionがスローされて終了する
∞を返す
#include<stdio.h> int main(int argc, char *argv[]) { double div0 = 1.0/0; printf("%f\n", div0); return 0; } //結果 inf
VisualBasic.Net
Class Program Public Shared Sub Main(ByVal params As String()) Console.WriteLine(1 / 0) End Sub End Class '結果 1.#INF
console.log(1/0)
//結果
Infinity
といったかんじでした。