ABCを並べて
ちょっと拾ったソース
A,B,C,D,E,Fの6文字のうち、3文字を使って出来る文字列を列挙せよ
総数は6P3 = 120個ある
#include <stdio.h>
void go(char s[4],int flag,int i)
{
int j;
if (i == 3) {
puts(s);
return;
}
for(j = 0;j < 6;++j) {
if (!(flag&(1<<j))) {
s[i] = j + 'A';
go(s, flag|1<<j, i+1);
}
}
}
int main(void)
{
char s[4];
s[3] = '\0';
go(s, 0, 0);
return 0;
}
こういうタイプの列挙問題って初歩的なものなんだろうけど、いざソースを書こうとすると結構難しかったりするんだよなぁ。
上のソースは宿題片付けますスレに貼られていたものなんですが、凄い単純なプログラムだと思う。まだまだ初心者を抜け出せない自分ですが、『あぁ~、なるほどぉ』と思うようなソースです。
上手いソースは結構ビット演算とかもつかってるんだなぁ・・・と思う訳ですよ。
既に使用した文字をint型変数flagの特定のビットを立てることで表現したりすんのは結構面白いと思う。int型だから大体の環境なら4バイト=32ビット。つまりアルファベット全部使った○文字の文字列の列挙とかも出来る訳だ。
アルファベットだけじゃなく、並べたいもの(文字列、数値etc...)を配列とかにgo関数内で配列に確保しておいて、
s[i] = j + 'A';
のところをちょっと書き換えれば、また面白いものが出来るかも。
あぁ~、こういうタイプのソースコードいっぱい置いてあるところないかなぁ~
俺じゃ作れねぇもんなぁ~
A,B,C,D,E,Fの6文字のうち、3文字を使って出来る文字列を列挙せよ
総数は6P3 = 120個ある
#include <stdio.h>
void go(char s[4],int flag,int i)
{
int j;
if (i == 3) {
puts(s);
return;
}
for(j = 0;j < 6;++j) {
if (!(flag&(1<<j))) {
s[i] = j + 'A';
go(s, flag|1<<j, i+1);
}
}
}
int main(void)
{
char s[4];
s[3] = '\0';
go(s, 0, 0);
return 0;
}
こういうタイプの列挙問題って初歩的なものなんだろうけど、いざソースを書こうとすると結構難しかったりするんだよなぁ。
上のソースは宿題片付けますスレに貼られていたものなんですが、凄い単純なプログラムだと思う。まだまだ初心者を抜け出せない自分ですが、『あぁ~、なるほどぉ』と思うようなソースです。
上手いソースは結構ビット演算とかもつかってるんだなぁ・・・と思う訳ですよ。
既に使用した文字をint型変数flagの特定のビットを立てることで表現したりすんのは結構面白いと思う。int型だから大体の環境なら4バイト=32ビット。つまりアルファベット全部使った○文字の文字列の列挙とかも出来る訳だ。
アルファベットだけじゃなく、並べたいもの(文字列、数値etc...)を配列とかにgo関数内で配列に確保しておいて、
s[i] = j + 'A';
のところをちょっと書き換えれば、また面白いものが出来るかも。
あぁ~、こういうタイプのソースコードいっぱい置いてあるところないかなぁ~
俺じゃ作れねぇもんなぁ~
レスリングの試合会場に
江頭2:50がいた件について
金色の服着て応援してたね
確か前にマラソンコースにも出てなかったか?
チベット抗議デモにもいたはず
流石江頭!俺たちに出来ないことをやってのけるッ!
そこにシビれる!憧れるゥッ!!
伊調選手残念だったね
吉田選手は相変わらずの無敵っぷり、強すぎる。ホントなんで1月の大会で負けたのかわかんないよ
小耳にはさんだのですが、競輪の選手が銅メダル獲得したらしいですよ~
アテネと比べて、獲得メダル枚数はどうなんでしょうか?
なんとなくアテネより少ないような気がするなぁ、柔道で結構負けたし
五輪後半も頑張れ日本!!
金色の服着て応援してたね
確か前にマラソンコースにも出てなかったか?
チベット抗議デモにもいたはず
流石江頭!俺たちに出来ないことをやってのけるッ!
そこにシビれる!憧れるゥッ!!
伊調選手残念だったね
吉田選手は相変わらずの無敵っぷり、強すぎる。ホントなんで1月の大会で負けたのかわかんないよ
小耳にはさんだのですが、競輪の選手が銅メダル獲得したらしいですよ~
アテネと比べて、獲得メダル枚数はどうなんでしょうか?
なんとなくアテネより少ないような気がするなぁ、柔道で結構負けたし
五輪後半も頑張れ日本!!
オイラー法による近似解

くわしくはこちら、数値解析2第4回
もともとは、宿題片付けますスレのスルーされていた問題をやろうと思ってたんですが、ちょうどいい具合に上の資料がみつかったんでためしにプログラミングしてみる事に。
上のグラフは自分の結果で、リンク先の結果とまぁ、多分一緒なんじゃないかなぁ・・・・・と^^;
y'' + sin(x) = 0
って2階常微分方程式の数値解析みたいです
こういう数値解析的な勉強はしてないからなぁ~
多分もうすぐやらなくちゃいけないんだと思う。
メンドクサイなぁ・・・・・・・
あ、ソースおいておこ
以下ソース
//////////////////////////////////////////////////
//
// 連立微分方程式のオイラー法による近似解の導出
//
// d^2y/dx^2 + sin(x) = 0
//
//////////////////////////////////////////////////
#include <stdio.h>
#include <math.h>
int main(void)
{
double yk, zk, tmp;
double h;
int i;
FILE *o_file = fopen("output.csv","w");
yk = 0.0;
zk = 0.001;
h = 0.5;
for (i = 0;i < 36;i++) {
printf("y%-2d = %10.10f\tz%-2d = %10.10f\n", i, yk, i, zk);
fprintf(o_file ,"%d,%f,%f,%f\n", i, h*i, yk, zk);
tmp = yk;
yk = yk + h * zk;
zk = zk - h * sin(tmp);
}
fclose(o_file);
return 0;
}
output.csvに
k、h*k、yk、zkの順番にコンマで区切って出力します。
花火は英語でfirework

本文はここから
なんでfireworkなんでしょかね。
線香花火もいいですが、やっぱり打ち上げ花火の方がいいっすね~
ドーン!って
ドーン!ドーン!って
派手な方が景気がいい感じがするしw
た~まや~、みたいなね
まぁ、見に行く事なんて殆んどないけどさ・・・・
花火の色は炎色反応なんですが、何使ってるんでしょうか?
多分ナトリウム、バリウム、アルミニウムの化合物を使っているはず。
実験で見たことあるけど、結構綺麗に発色するんだよね。
リアカーなきK村に動力借りるとするも・・・・・・・・・・忘れたorz
化学は暫くやってないので覚えていません。でも後期からは化学があったりなかったり。大丈夫なの俺?
化学はあんまり得意じゃないんだよなぁ。
なんでfireworkなんでしょかね。
線香花火もいいですが、やっぱり打ち上げ花火の方がいいっすね~
ドーン!って
ドーン!ドーン!って
派手な方が景気がいい感じがするしw
た~まや~、みたいなね
まぁ、見に行く事なんて殆んどないけどさ・・・・
花火の色は炎色反応なんですが、何使ってるんでしょうか?
多分ナトリウム、バリウム、アルミニウムの化合物を使っているはず。
実験で見たことあるけど、結構綺麗に発色するんだよね。
リアカーなきK村に動力借りるとするも・・・・・・・・・・忘れたorz
化学は暫くやってないので覚えていません。でも後期からは化学があったりなかったり。大丈夫なの俺?
化学はあんまり得意じゃないんだよなぁ。