最適化?メモ
今日大学の部活動?サークル?まだ区別がつかないけど、そこでプログラミング講習なるものをやってました。
今回はwhileということで、aのn乗を出力するコードを書いたんですけど、悔しいミスというか、惜しいところがあったのでメモ。
最初のコードはコレ。そりゃ動きますとも。
#include <stdio.h> int main() { int a, n, i; double result; printf("input a > "); scanf("%d", &a); printf("input n > "); scanf("%d", &n); i = n; result = 1.0; while (i) { if (0 < i) { result *= a; i--; } else { result /= a; i++; } } printf("%d^%d = %lf\n", a, n, result); return 0; }
こっちの方が良かったコード。
#include <stdio.h> int main() { int a, n; double result; printf("input a > "); scanf("%d", &a); printf("input n > "); scanf("%d", &n); printf("%d^%d = ", a, n); result = 1.0; while (0 < n) { result *= a; n--; } while (n < 0) { result /= a; n++; } printf("%lf\n", result); return 0; }
違いは、whileの中身。ifをn回省いている。
その分whileの条件式が変わって結局同じかもだけど、ネストが減るのも良いことじゃないかな。
あと変数が1つ減っている。iなんて要らんかったんや!
おまけ。短さを極めたけどwhile-while間のn++が微妙。
何やってるかというと、最初の「0 < n--」を通ると無条件にnが1小さくなっちゃうので調整している。
結局のところさっきのがベストか。
#include <stdio.h> int main() { int a, n; double result = 1; printf("input a > "); scanf("%d", &a); printf("input n > "); scanf("%d", &n); printf("%d^%d = ", a, n); while (0 < n--) result *= a; n++; while (n++ < 0) result /= a; printf("%lf\n", result); return 0; }
3Dモデルを2D投影
擬似立体描画ができたのかな。多分。 - うおおおおああああZerOx4Cの日記。
の発展。
ぐりぐり回る3Dモデルのデモを作ってみた。仕組みは案外簡単でびっくり。
もっと複雑な、自分にはよく分からないことをしているんだろうとばかり思っていたが、いざこんなもんだろうと想像して書いてみると合ってるもんだなぁ。
仕組みは以下のような感じ。随分分かりにくいけどみんなどうせ知ってるんでしょ!車輪の再開発なことくらい分かっとるわチキショー!
最初はモデルの回転が上手くいかずに、ビヨンビヨン立方体がトランスフォームしてたんだけど、原因は初歩的な1次変換のミス。
vt.Y = vt.Y * (float)Math.Cos(radian) - vt.Z * (float)Math.Sin(radian); vt.Z = vt.Y * (float)Math.Sin(radian) + vt.Z * (float)Math.Cos(radian);
こんなコードだったんだけど、1行目でvt.Yが既に変換済みなので、vt.Zを変換するときにおかしなことになってたみたい。
皆さん気をつけましょう。(ここで言う皆さんとはZerOxやZerOxのこと。
そういうわけで眠いです。ぐー。
確実にしゃっくりを止める方法
しゃっくりは横隔膜の痙攣によって起こるので、息を止めるだけではあんまり意味はない。
みんなが知ってたらすごい恥ずかしいけど、ZerOxのいつもやってる方法をメモる。
この記事を読んで一人でも多くのしゃっくりistを救えたら良いと思う。
まずは吸えなくなるまで息を吸う、ここまではよく聞く方法である。
しかしこれだけでは不十分。まだ横隔膜が動く余裕があるのだ。
次に口を開けて空気を口の中に含んで閉じる。
この時肺に溜めた空気を漏らしてはいけないが、これは簡単に出来るはずだ。
要するに息を止めたまま口を開けて閉じるということ。
そして口の中に溜めた空気を飲み込む。当然少しだけ肺の内圧が上がる。
これを何度か繰り返して肺をパンパンにする。お外で恥ずかしい時は手で口を覆いましょう。
こうすることで横隔膜が動きたくても動けない状況を作ります。
あとはしばらくパンパン状態で我慢。
苦しくなったら吐いてもいいけど、あんまり時間が経ってなければ再度パンパンにして我慢。
しゃっくり数回分の時間を我慢すれば十分。もう普通に呼吸してもしゃっくりは出なくなっているはず。
やったね!こうしてZerOxは今日もしゃっくりから救われたのでした。
すごい久しぶりにどうでもいい日記
いよいよ僕も大学生。通学が長い。
というのは置いといて、
さっき間違い電話が掛かってきました。
最初は彼女かと思って喜んで画面を見ると番号表示でガッカリ。
もしかしてこの前Skypeでブロックしてやった教えて君かと思って無視を決め込もうかと思ったけど取っちゃった☆ミ
そしてもしもししてみると「コジマさんですか?」・・・いやちげぇよwwww
まぁ何とも言えない雰囲気になってさようなら。あれ?謝れよテメェと思ったのは後から。
実は前にも一回「コジマさん」と間違えられたことがあるんだけど、それを言っても相手は知らない様子。
おいおいコジマさんが俺の番号を間違えてバラ撒いてんのかよ勘弁しろとww
おいコジマぁー!と叫びたい今日この頃。全国のコジマさんごめんよw
もしもこの記事を読んでるコジマさんが居たら間違えて番号を教えていないか確認して下さいねww
そしてコジマ友達略してコジ友にも一応確認してみてくださいw
あーテンションがおかしい。
困ったときに思い出すか分からないメモ
dicedの実行はroot権限で。