ibe_tattsu の回答履歴

全83件中21~40件表示
  • 遺伝的アルゴリズム

    遺伝的アルゴリズムをCで組み、Cygwinのgccコマンドでコンパイルしたのですが、実行するとエラーが出てしまいます。 gsb内で実行しwhereコマンドで異常箇所を探した場合のメッセージは以下の通りです。 #0 0x61016525 in stack_info::walk () from /usr/bin/cygwin1.dll #1 0x7c859dcc in OutputDebugStringsA () from /cygdrive/c/WINDOWS/system32/kernel32.dll #2 0x40010006 in ?? () #3 0x00000000 in ?? () プログラムは長いので載せられませんが、アルゴリズム中の染色体は二次元配列の遺伝子を含む構造体です。 遺伝子の配列に関わるノード数(chromo[timeslot][NODE]←このNODEです。プログラム冒頭で値をdefineで宣言しています)が30位なら世代数が比較的多くても動くのですが、これが50あたりになると世代数が低くてもエラーが出てしまいます。 printf関数で交叉や突然変異の結果を表示しているのですがちゃんと動作しているようです。 二台のパソコンどちらでやってもこのようなメッセージが出るので困っています。何が起こっているか見当がつく方、いらっしゃいましたら助言願います。 よろしくお願いいたします。

  • 遺伝的アルゴリズム

    遺伝的アルゴリズムをCで組み、Cygwinのgccコマンドでコンパイルしたのですが、実行するとエラーが出てしまいます。 gsb内で実行しwhereコマンドで異常箇所を探した場合のメッセージは以下の通りです。 #0 0x61016525 in stack_info::walk () from /usr/bin/cygwin1.dll #1 0x7c859dcc in OutputDebugStringsA () from /cygdrive/c/WINDOWS/system32/kernel32.dll #2 0x40010006 in ?? () #3 0x00000000 in ?? () プログラムは長いので載せられませんが、アルゴリズム中の染色体は二次元配列の遺伝子を含む構造体です。 遺伝子の配列に関わるノード数(chromo[timeslot][NODE]←このNODEです。プログラム冒頭で値をdefineで宣言しています)が30位なら世代数が比較的多くても動くのですが、これが50あたりになると世代数が低くてもエラーが出てしまいます。 printf関数で交叉や突然変異の結果を表示しているのですがちゃんと動作しているようです。 二台のパソコンどちらでやってもこのようなメッセージが出るので困っています。何が起こっているか見当がつく方、いらっしゃいましたら助言願います。 よろしくお願いいたします。

  • 遺伝的アルゴリズム

    遺伝的アルゴリズムをCで組み、Cygwinのgccコマンドでコンパイルしたのですが、実行するとエラーが出てしまいます。 gsb内で実行しwhereコマンドで異常箇所を探した場合のメッセージは以下の通りです。 #0 0x61016525 in stack_info::walk () from /usr/bin/cygwin1.dll #1 0x7c859dcc in OutputDebugStringsA () from /cygdrive/c/WINDOWS/system32/kernel32.dll #2 0x40010006 in ?? () #3 0x00000000 in ?? () プログラムは長いので載せられませんが、アルゴリズム中の染色体は二次元配列の遺伝子を含む構造体です。 遺伝子の配列に関わるノード数(chromo[timeslot][NODE]←このNODEです。プログラム冒頭で値をdefineで宣言しています)が30位なら世代数が比較的多くても動くのですが、これが50あたりになると世代数が低くてもエラーが出てしまいます。 printf関数で交叉や突然変異の結果を表示しているのですがちゃんと動作しているようです。 二台のパソコンどちらでやってもこのようなメッセージが出るので困っています。何が起こっているか見当がつく方、いらっしゃいましたら助言願います。 よろしくお願いいたします。

  • ポインタのポインタとrealloc

    先程関数による動的確保について質問させていただき、ヒントを与えていただいたのですが、そこからまた疑問が生じました。 テストプログラムを作ったのですが、何やら動作がおかしいみたいです おかしい部分を抜き出したソースは次のとおりです int main() {  int **p;  int i;  p = (int **)malloc(sizeof(int *));  *p = (int *)malloc(sizeof(int));  p[0]=0;  for(i=1;i<10;i++){   *p = (int *)realloc(*p,sizeof(int)*(i+1));   *p[i] = i;  }  free(*p);  return 0; } 関数部として作りたい部分をメインにして抜き出しました。 このようにするとreallocがメモリ領域を拡張してくれなく(?)、*p[i] = i;の部分でエラー終了します。 ポインタのポインタではなく、ポインタを用いた時は正常に動作するのですが、何がまずいのでしょうか。 もし宜しければお願いいたします。 ちなみに私は学部4年生で、プログラムの使用は大学の研究用レベルです。

  • ドットのパターンを作成したいです。

    画像処理の実験をおこなうにあたって、 ランダムなドットのパターン(FFTで均一な周波数分布をとる)を 作成したいのですが、どのようなソフトを使って、 どのような操作をすれば作成することができますでしょうか?

  • 2375ポートについて

    2375ポートはなにに使用されているのですか? アクセスログ閲覧時にこのポートからアクセスしていたことになっていたので質問しました。 80バンや110バンポートならわかるのですが・・・・

  • YouTube Downloaderについて教えて下さい。

    はじめまして、YouTube Downloaderで、YouTubeをDownloadしたのですが、再生できません。普通にウィンドウズメディアプレーヤーで再生したいのですが、可能でしょうか?? 後、形式表示がないのは、なぜでしょうか?? 【例.mpg等】 素人ですが、宜しくお願い致します。

  • gnuplot内の数値計算

    gnuplotでf(x)=15000000000*(0.08/exp((x/49)^0.25)+0.92/exp((x/9000000)^0.35))という計算を行いたいのですが、 a=0.08 b=49 c=0.25 d=9000000 e=0.35 f=15000000000 f(x)=f*(a/exp((x/b)**c)+(1-a)/exp((x/d)**e)) と入力してもExcelでの計算と一桁違ってしまいます。 おそらく数式を間違えていると思うのですが、よくわかりません。 どうすれば正しい数式になるのか教えてください。

  • Linuxコマンドについて

    計算式がいくつか書いてあるファイルの各行の式を計算し、その計算結果の最大値のみを表示するにはどうしたらいいのでしょうか? ちなみに、1行のコマンドラインで行わなければならないのですが…

  • GIMPのseparateプラグインの追加について

    私はPCで絵を描くときにGIMPを使っているのですが、GIMPでもCMYKに変換出来るプラグインが公開されていると知りました。 さっそくダウンロードしたのですがreadmeもありませんし、とりあえずseparateという名称のアプリケーションプログラムをコピーし、GIMP-2.0ファイルの中のplug-insフォルダに入れました、が、確かにGIMPを起動すると「画像」の中にseparateという項目が表示されます。しかし、separate(normal)を選び、出たダイアログボックスを何も変更せずOKを押したのですが、「プラグインがクラッシュしました」という表示が出て結局何も出来ません。separate+という従来のプラグインを改良した物もある様ですが、こちらはデータの数もさらに増え従来のプラグインが利用出来なかった私に利用は出来ませんでした。 ダウンロードしたファイルの中で、他にもどこかへ入れるデータがあるのでしょうか?色々検索しましたが、正直お手上げとなり質問させて頂きました。ご存知の方回答をお待ちしています。 OS WindowsXP GIMP GIMP2.2.14

  • 教えてください!!!!

    HPなどを見ると、そのHPの画像などのファイルはC:\Documents and Settings\ユーザー名\Local Settings\Temporary Internet Filesに保存されていました。しかし、XPをサービスパック2にしてインターネットエクスプローラーを7にバージョンを上げるとC:\Documents and Settings\ユーザー名\LocalSettings\Temp\Temporary Internet Filesと場所が少し変わり、Temporary Internet Filesの中を見ても何も保存されていないのです。。。 どこに保存されるようになっているのか教えてください。 どうかお願いいたします。

  • GIMPのseparateプラグインの追加について

    私はPCで絵を描くときにGIMPを使っているのですが、GIMPでもCMYKに変換出来るプラグインが公開されていると知りました。 さっそくダウンロードしたのですがreadmeもありませんし、とりあえずseparateという名称のアプリケーションプログラムをコピーし、GIMP-2.0ファイルの中のplug-insフォルダに入れました、が、確かにGIMPを起動すると「画像」の中にseparateという項目が表示されます。しかし、separate(normal)を選び、出たダイアログボックスを何も変更せずOKを押したのですが、「プラグインがクラッシュしました」という表示が出て結局何も出来ません。separate+という従来のプラグインを改良した物もある様ですが、こちらはデータの数もさらに増え従来のプラグインが利用出来なかった私に利用は出来ませんでした。 ダウンロードしたファイルの中で、他にもどこかへ入れるデータがあるのでしょうか?色々検索しましたが、正直お手上げとなり質問させて頂きました。ご存知の方回答をお待ちしています。 OS WindowsXP GIMP GIMP2.2.14

  • (初心者)乱数のことで

    使っているソフトはVisual c++です C言語で乱数を使うときにrandom関数を使ったんですが 帰ってくる値が一定なのでネットで検索したら 「メルセンヌ・ツイスタ」 を進めているサイトが多かったので ヘッダーファイルをダウンロードしてみたのですが メルセンヌ・ツイスタを プログラムに組み込む時どのように記述すればいいのか いろいろ試したのですがわかりませんでした メルセンヌ・ツイスタを組み込む構文の仕方を教えてください

  • プログラムの関数化

    皆様に助けていただき、なんとかコーディング出来たのですが、関数化したいと思います。アドバイスお願いします。 int overflow_check1(); int overflow_check2(); int overflow_check3(); int overflow_check4(); int lop; // 左のオペランドに入力する値 int rop; // 右のオペランドに入力する値 int result; // 計算結果 int mod; // 除算の余り int max = INT_MAX; // 表現可能な最大値 int min = INT_MIN; // 表現可能な最小値 char *check; // 変換不能な文字を格納 char op; // 入力する演算子 int main ( int argc, char *argv[] ) { /* 引数の個数チェック */ if ( argc != 4 ) { printf ( "usage : %s lop op rop\n", argv[0] ); exit ( 0 ); } /* 引数を取得して整数型に変換 */ lop = atoi ( argv[1] ); rop = atoi ( argv[3] ); /* 引数の取得 */ op = ( argv[2][0] ); /* startが整数であるか文字であるかのチェック */ lop = strtol ( argv[1], &check, 10 ); if ( errno != ERANGE ) { if ( *check != '\0' ) { printf ( "error : 整数を入力して下さい。\n" ); exit ( -1 ); } /* startに範囲を超えた値を入力した場合 */ } else { printf( "error : 整数型の範囲を超えました。\n" ); exit( -1 ); } /* endが整数であるか文字であるかのチェック */ rop = strtol ( argv[3], &check, 10 ); if ( errno != ERANGE ) { if ( *check != '\0' ) { printf ( "error : 整数を入力して下さい。\n" ); exit ( -1 ); } /* endに範囲を超えた値を入力した場合 */ } else { printf( "error : 整数型の範囲を超えました。\n" ); exit( -1 ); } /* argv[2]が2文字以上の場合 */ if ( strlen ( argv[2] ) >= 2 ) { printf ( "error : 演算子を正しく入力して下さい。\n" ); exit ( -1 ); } /* argv[2]に入力された演算子が'+'の場合 */ switch ( op ) { case '+': overflow_check1(); result = lop + rop; break; /* argv[2]に入力された演算子が'-'の場合 */ case '-' : overflow_check2(); result = lop - rop; break; /* argv[2]に入力された演算子が'*'の場合 */ case '*': overflow_check3(); result = lop * rop; break; /* argv[2]に入力された演算子が'/'の場合 */ case '/' : /* 0による除算 */ if ( rop == 0 ) { printf ( "error : 0による除算は禁止です。\n" ); exit ( -1 ); } overflow_check4(); result = lop % rop; // 剰余を求める break; default: printf ( "error : '+' '-' '*' '/'のいずれかの演算子を入力して下さい。\n" ); exit ( -1 ); } /* 割り算の結果として余りが出なかった場合 */ if ( result == 0 ) { result = lop / rop; printf ( "%d %c %d = %d", lop, op, rop, result ); exit ( 0 ); /* 割り算の結果として余りが出た場合 */ } else { result = lop / rop; mod = lop % rop; printf ( "%d %c %d = %d余り%d", lop, op, rop, result, mod ); exit ( 0 ); } /* 数値1 演算子 数値2 = 演算結果の形式で出力する */ printf ( "%d %c %d = %d", lop, op, rop, result ); exit ( 0 ); } int overflow_check1 () { /* オーバーフローのチェック */ if ( lop > 0 && rop > 0 ) { if ( lop > max - rop ) { printf ( "error : オーバーフローが起こります。\n" ); exit ( 0 ); } } /* オーバーフローのチェック */ if ( lop < 0 && rop < 0 ) { if ( lop < min - rop ) { printf ( "error : オーバーフローが起こります。\n" ); exit ( 0 ); } } return 0; } int overflow_check2 () { /* オーバーフローのチェック */ if ( lop > 0 && rop < 0 ) { if ( lop > max + rop ) { printf ( "error : オーバーフローが起こります。\n" ); exit ( 0 ); } } /* オーバーフローのチェック */ if ( lop < 0 && rop > 0 ) { if ( lop < min + rop ) { printf ( "error : オーバーフローが起こります。\n" ); exit ( 0 ); } } return 0; } int overflow_check3 () { /* オーバーフローのチェック */ if ( lop > max / rop ) { printf ( "error : オーバーフローが起こります。\n" ); exit ( -1 ); } /* オーバーフローのチェック */ if ( rop < max / lop ) { printf ( "error : オーバーフローが起こります。\n" ); exit ( 0 ); } return 0; } int overflow_check4 () { /* オーバーフローのチェック */ if ( ( lop == min ) && ( rop == -1 ) ) { printf ( "error : オーバーフローが起こります。\n" ); exit ( -1 ); } return 0; }

  • プログラムの関数化

    皆様に助けていただき、なんとかコーディング出来たのですが、関数化したいと思います。アドバイスお願いします。 int overflow_check1(); int overflow_check2(); int overflow_check3(); int overflow_check4(); int lop; // 左のオペランドに入力する値 int rop; // 右のオペランドに入力する値 int result; // 計算結果 int mod; // 除算の余り int max = INT_MAX; // 表現可能な最大値 int min = INT_MIN; // 表現可能な最小値 char *check; // 変換不能な文字を格納 char op; // 入力する演算子 int main ( int argc, char *argv[] ) { /* 引数の個数チェック */ if ( argc != 4 ) { printf ( "usage : %s lop op rop\n", argv[0] ); exit ( 0 ); } /* 引数を取得して整数型に変換 */ lop = atoi ( argv[1] ); rop = atoi ( argv[3] ); /* 引数の取得 */ op = ( argv[2][0] ); /* startが整数であるか文字であるかのチェック */ lop = strtol ( argv[1], &check, 10 ); if ( errno != ERANGE ) { if ( *check != '\0' ) { printf ( "error : 整数を入力して下さい。\n" ); exit ( -1 ); } /* startに範囲を超えた値を入力した場合 */ } else { printf( "error : 整数型の範囲を超えました。\n" ); exit( -1 ); } /* endが整数であるか文字であるかのチェック */ rop = strtol ( argv[3], &check, 10 ); if ( errno != ERANGE ) { if ( *check != '\0' ) { printf ( "error : 整数を入力して下さい。\n" ); exit ( -1 ); } /* endに範囲を超えた値を入力した場合 */ } else { printf( "error : 整数型の範囲を超えました。\n" ); exit( -1 ); } /* argv[2]が2文字以上の場合 */ if ( strlen ( argv[2] ) >= 2 ) { printf ( "error : 演算子を正しく入力して下さい。\n" ); exit ( -1 ); } /* argv[2]に入力された演算子が'+'の場合 */ switch ( op ) { case '+': overflow_check1(); result = lop + rop; break; /* argv[2]に入力された演算子が'-'の場合 */ case '-' : overflow_check2(); result = lop - rop; break; /* argv[2]に入力された演算子が'*'の場合 */ case '*': overflow_check3(); result = lop * rop; break; /* argv[2]に入力された演算子が'/'の場合 */ case '/' : /* 0による除算 */ if ( rop == 0 ) { printf ( "error : 0による除算は禁止です。\n" ); exit ( -1 ); } overflow_check4(); result = lop % rop; // 剰余を求める break; default: printf ( "error : '+' '-' '*' '/'のいずれかの演算子を入力して下さい。\n" ); exit ( -1 ); } /* 割り算の結果として余りが出なかった場合 */ if ( result == 0 ) { result = lop / rop; printf ( "%d %c %d = %d", lop, op, rop, result ); exit ( 0 ); /* 割り算の結果として余りが出た場合 */ } else { result = lop / rop; mod = lop % rop; printf ( "%d %c %d = %d余り%d", lop, op, rop, result, mod ); exit ( 0 ); } /* 数値1 演算子 数値2 = 演算結果の形式で出力する */ printf ( "%d %c %d = %d", lop, op, rop, result ); exit ( 0 ); } int overflow_check1 () { /* オーバーフローのチェック */ if ( lop > 0 && rop > 0 ) { if ( lop > max - rop ) { printf ( "error : オーバーフローが起こります。\n" ); exit ( 0 ); } } /* オーバーフローのチェック */ if ( lop < 0 && rop < 0 ) { if ( lop < min - rop ) { printf ( "error : オーバーフローが起こります。\n" ); exit ( 0 ); } } return 0; } int overflow_check2 () { /* オーバーフローのチェック */ if ( lop > 0 && rop < 0 ) { if ( lop > max + rop ) { printf ( "error : オーバーフローが起こります。\n" ); exit ( 0 ); } } /* オーバーフローのチェック */ if ( lop < 0 && rop > 0 ) { if ( lop < min + rop ) { printf ( "error : オーバーフローが起こります。\n" ); exit ( 0 ); } } return 0; } int overflow_check3 () { /* オーバーフローのチェック */ if ( lop > max / rop ) { printf ( "error : オーバーフローが起こります。\n" ); exit ( -1 ); } /* オーバーフローのチェック */ if ( rop < max / lop ) { printf ( "error : オーバーフローが起こります。\n" ); exit ( 0 ); } return 0; } int overflow_check4 () { /* オーバーフローのチェック */ if ( ( lop == min ) && ( rop == -1 ) ) { printf ( "error : オーバーフローが起こります。\n" ); exit ( -1 ); } return 0; }

  • 他のコマンドの読み書き

    こんにちは。よろしくお願いします。 自分のプログラムから他のコマンドにデーターを渡したり 受け取ったりするにはどうすればよいのでしょうか? popen()だと"r"か"w"しか指定できないので読み込みも書き込みも したい場合に困ってしまいます。 ご存知の方がいらっしゃいましたらご教授お願いいたします。 C言語でOSはLinuxです。

  • 【GIMP】選択範囲を透明にする。

    GIMPで範囲を選択して「選択」→「消去」を選択してもその部分が背景色になってしまいます。背景色ではなく、透明にすることは出来ないのでしょうか。 また、透明部分がある状態での保存は出来るのでしょうか。 GIMPは初心者です。よろしくお願いします。

  • shellの作成

    大学で以下のような課題を出されました。 ・コマンドライン入力を受け付けて、実行可能ファイルを実行できる コマンドサーチパスを持っている方が望ましいが、実行時に full path指定 するのでも構わない ・バックグラウンド実行 ・標準入出力・エラー出力のリダイレクション ・パイプによる標準入出力の他プロセスへの接続 作成の上で条件は以下の通りです。 ・使ってよいのは基本的にはシステムコールのみ man で (2) execve, fork, pipe, dup, read, write, open ・プログラム作成の効率化を考慮して以下の library関数は使うことを認める exec周り execv 文字列関係 str... 入出力関係 fprintf, fgets 入出力関係は、コマンドライン入力、エラー出力に限る 今までshellを作成したことが無くどうすればよいか良く分かりません。 fork()やexec()の意味はなんとなくは理解したのですが・・・

  • JAVAについての質問

     現在、JAVA(アプレット)を勉強しているのですがどうもうまくいかないので質問させていただきます。   まず、javaプログラム(Hello.java)をコマンドプロンプトを使ってclassファイルを作ります。そして、そのファイルを <APPLET CODE="Hello.class" WIDTH=150 HEIGHT=100> </APPLET> というのを書いてhtml形式のファイルにくっつけます。このhtmlファイルをダブルクリックすると"Hello"と出ます。  しかし、この後Hello.javaファイルを"Goodbye"と出るように変えて上書き保存します。そして、上で書いたのと同じようにjavacを行なって、html形式のファイルをダブルクリックしても"Goodbye"と出ずに、"Hello"と出て更新されていません。(上書き保存しているので"Hello"と出るプログラムは無いはずなのに)  どうしたら更新されるのでしょうか?どうぞよろしくお願いします。

  • 就職試験の結果発表について。

    今日の夜(19時ごろ)自宅に先日一次試験を受けた会社から電話があったそうです。 それは一次試験の合否の結果だったのですが、私は外出していたためそれを帰宅するまで知りませんでした。 10時ごろ帰宅したところ、妹から会社から電話があったことを告げられました。 会社からは「また連絡します」と言われたそうですが、明日も所用で夕方から出かけなくてはなりません。 明日の朝か昼にでも会社に電話をかけたほうが良いでしょうか? それともかけずに、かかってきたら携帯のほうにかけてもらえるように言って貰ったほうが良いでしょうか?