頑張るという事

頑張るという事の本質は初心を忘れないで継続するという事なのかもしれない。

元の頁を張ると書いて頑張るだから。

#と、思ってもいないことを言ってみる。

Share

本日注文した本2冊

最近、ちょっと疎かになっているので、そろそろ、ちゃんとやっておこうと思って。

マイナな言語なのでいつ廃盤になっても良いと思ったのと、ちょうどiPhone SDKにもふれた新しい版が出ていたので。

こちらは、思い立ったときに、勉強できるように。

詳解 Objective-C 2.0

詳解 Objective-C 2.0

Share

揶揄するのがブーム?

最近は、自分と違う価値観を持った人や行動について揶揄することで安心する事がブームなのかな。

疲れないのかな。とか、

ストレスたまっているのかな。とか、

狭くて息苦しくないのかな。とか、

ちょっと心配してみたり。

Share

凄く便利で分かりやすいのに、見た目だけで保守派に嫌われそうな??演算子

?? 演算子 (C# リファレンス)

?? 演算子は、左側のオペランドが null 値でない場合にはこのオペランドを返し、null 値である場合には右側のオペランドを返します。

?? 演算子 (C#)

??演算子は下記、サンプルのようなコードの場合、aがnullなら0を返す。という動作をします。

int? a = null;
Console.WriteLine(a ?? 0);

もちろん、二つの値だけではなく、以下のような使い方もできます。

左から右の順に初めてnullでは無い値を返します。

下の場合cが初めてnullでは無い値なのでcの値である2を返します。

int? a = null;
int? b = null;
int? c = 2;
int? d = null;
Console.WriteLine(a ?? b ?? c ?? d ?? 0);

新しい演算子なので、当たり前ですが見慣れないので、三項演算子に並んで保守派に忌避されそうな演算子ですね。

ほんの30秒だけMSDNの該当ページを読めば分かる処理内容で分かりやすく読みやすくなるのですが・・・。

Share
カテゴリー: C#

以前のパズル:nまでの整数を二つの組に分けて合計した結果が同じだった2番目と3番目を出力するで見つけた式は隣接三項間漸化式という事が分かった

数式にするとこんな感じ?勉強していないので表記が間違っているかもしれませんが・・・

N¥tiny kを任意の整数とし

N¥tiny 0¥large =-1

N¥tiny 1¥large =0

としたとき、

N¥tiny k+1¥large=N¥tiny k ¥large 6-(N¥tiny k-1 ¥large -2)

となる。

パズル:nまでの整数を二つの組に分けて合計した結果が同じだった2番目と3番目を出力する その2 – NAL-6295の舌先三寸

で見つけた式は隣接三項間漸化式という事がわかった。(多分。)

という事は、この漸化式から一般解が導ければ、その後、数学的帰納法で証明することが可能という事か?

#まだ、続いていたのか。という話題。

Share

ある整数xとyの最小公倍数を出す時の法則を見つけた

ある整数xとyの最小公倍数を出す計算をして結果を眺めていたら、ある法則がある事がわかった。

xとyをそれぞれ素因数分解して、xの素因数リストとyの素因数リストを出し、

xの素因数リストとyの素因数リストの重複部分を打ち消し、

残ったxの素因数リストを乗算して算出した値にyを掛けると、

xとyの最小公倍数になる。

例:

xが12でyが20の時、

xの素因数が2,2,3

yの素因数が2,2,5

重複部分を打ち消しあうと

xの素因数の残りが3

yの素因数の残りが5

yにxの素因数の残りを掛けると60

(ついでに)xにyの素因数の残りを掛けても60

12と20の最小公倍数は60

無知ゆえの発見が楽しい。

#ちなみに、やっと数学的帰納法の意味がわかりました。

Share

ある整数xとyの最大公約数を出す時の法則を見つけた

前回のエントリで最小公倍数を出す法則を見つけたが、その過程で最大公約数を出している事が分かった。

xとyの素因数リストの中にある重複部分を掛けた結果が最大公約数。

重複した部分が無い場合は1が最大公約数。

xとyをそれぞれ素因数分解して、xの素因数リストとyの素因数リストを出し、

xの素因数リストとyの素因数リストの重複部分を打ち消し、

残ったxの素因数リストを乗算して算出した値にyを掛けると、

xとyの最小公倍数になる。

例:

xが12でyが20の時、

xの素因数が2,2,3

yの素因数が2,2,5

重複部分を打ち消しあうと

xの素因数の残りが3

yの素因数の残りが5

yにxの素因数の残りを掛けると60

(ついでに)xにyの素因数の残りを掛けても60

ある整数xとyの最小公倍数を出す時の法則を見つけた – NAL-6295の舌先三寸

上記例を使うと、

xの素因数 2,2,3とyの素因数 2,2,5のうちの重複部分である、

2,2

をかけると、4となり、

12と20の最大公約数は4である。

となる。

Share

最大公約数を算出するためのユークリッドの互除法

2 つの自然数(または整式) a, b (a ≧ b) について、a の b による剰余を r とすると、 a と b との最大公約数は b と r との最大公約数に等しいという性質が成り立つ。この性質を利用して、 b を r で割った剰余、 除数 r をその剰余で割った剰余、と剰余を求める計算を逐次繰り返すと、剰余が 0 になった時の除数が a と b との最大公約数となる。

ユークリッドの互除法 – Wikipedia

素因数分解しなくても、ユークリッドの互除法という方法を使えば、もっと早く算出できるという事がわかった。

というか、読んだから分かったんだけど。

20と12なら

20/12 = 1あまり8

12 / 8 = 1 あまり 4

8 / 4 = 2 あまり 0

で4が最大公約数となる。

これは、便利な方法だ。

Share