検索結果 418 件

by たいちう
2年前
フォーラム: C言語何でも質問掲示板
トピック: かなり初心者です
返信数: 9
閲覧数: 884

Re: かなり初心者です

オフトピック
見落としていましたが「課題」なんですね。
例えば専門学校の4月からの授業だとして、
この時期にこのパズルの解答を求めるプログラムを作らせるというのは、
結構不思議ですね。もしかして半期や通年の課題ですか?

専門学校の2年目で「C言語初級」コースを履修済みとかいう前提なら納得です。
差支えない範囲で背景を教えてもらえませんか。
by たいちう
2年前
フォーラム: C言語何でも質問掲示板
トピック: かなり初心者です
返信数: 9
閲覧数: 884

Re: かなり初心者です

> しかし初心者過ぎてまったく手つかずです。何から始めたらいいでしょうか > ちなみに立体パズルは”みんなで笑って、はいチーズ!” アマゾンの画像からルールの一部を見ただけですが、 近いパズルに「箱入り娘」があります。 ググればプログラムや説明サイトが見つかりますので、 通過点として、箱入り娘のプログラムを完全に理解できるように なってはどうでしょうか。 そののち、このパズル特有の転がす処理を追加することができれば、 特に難しいこともなく解けるのではないでしょうか。 転がす処理の練習として、サイコロを動かしましょう。 初期状態を「1が上、2が右」とした場合、「上右右下左...」などと転がしたと...
by たいちう
2年前
フォーラム: C言語何でも質問掲示板
トピック: c/c++ はどこで学習すれば?
返信数: 6
閲覧数: 1249

Re: c/c++ はどこで学習すれば?

ネット利用についての注意としては、情報の質が保証されていないものが多いと言うことです。 言語やライブラリの規格書のようなものは、一番信頼できるのですが、 これらを紹介・解説する個人ブログなどは、読みやすい半面、間違っている場合も少なくありません。 出版された書籍の場合、編集者をはじめとして数人がチェックをしているでしょうが、 それでも、著者の勘違いや理解不足・誤訳などの間違いは残ります。 個人が勢いで書いたようなブログの信頼性には、全く担保がありませんので、 読み手が検証していく必要があるでしょう。 この点に気を付ければ、書籍よりも新しい情報がほとんど無料で入手できます。 私の場合、じっくりと...
by たいちう
2年前
フォーラム: C言語何でも質問掲示板
トピック: c/c++ はどこで学習すれば?
返信数: 6
閲覧数: 1249

Re: c/c++ はどこで学習すれば?

回答がこないようなので、僭越ながら、、、(呼び水?) 私の理解では、CやC++の標準的な機能ではスレッドを扱えません。 C/C++でよく使われているスレッド用のライブラリがあるだけです。 標準的な機能のみでもとんでもないボリュームですし、 存在するすべてのライブラリを紹介しているサイトもないでしょう。 (最新のC++においては標準で扱えるらしいです。) http://postd.cc/c11-threads-affinity-and-hyperthreading/ 学習の仕方についてですが、興味を持てる、かつ、自分にとって必要性の高い機能から、 順々に学習するしかないのではないかと思います。 ...
by たいちう
2年前
フォーラム: C言語何でも質問掲示板
トピック: キャラが正しくアニメーションされない。
返信数: 11
閲覧数: 1927

Re: キャラが正しくアニメーションされない。

NNNさん、フォローありがとうございます。 まぁ、スルーされても構わないのですが、私は私で拙い例えを続けます。 何か感じ取ってくれればよいのですが、、、 件の小学生は、ある積分の問題を解きたいのですが、 「先に因数分解の勉強をしたら」と勧められても、 「因数分解は理解している」と聞き入れません。 実際は教科書に書かれたことをパラパラ読んだだけで、 因数分解の簡単な問題も解けません。 プログラミングや数学に限りませんが、 簡単なものからの積み重ねが重要な場合がしばしばあります。 自分が今取り組んでいることが非常に難しく感じるなら、 もっと簡単なことの理解を深めることが近道な場合が多いと思います。
by たいちう
2年前
フォーラム: C言語何でも質問掲示板
トピック: キャラが正しくアニメーションされない。
返信数: 11
閲覧数: 1927

Re: キャラが正しくアニメーションされない。

補足です。

小学生が微積分を勉強しているのを想像してみてください。
熱心に「この問題はどのように解くの?」と質問を繰り返します。
教わった通りにその問題を解けるようになったとしても、
ほとんど理解できていないため、少しでも違う問題は解けません。

まずは算数から、次に中学の数学から勉強するようにアドバイスしませんか?
by たいちう
2年前
フォーラム: C言語何でも質問掲示板
トピック: キャラが正しくアニメーションされない。
返信数: 11
閲覧数: 1927

Re: キャラが正しくアニメーションされない。

> デバックをすればいいということはわかっているのですが、
> どこに原因があるのかを教えてくれませんか?

期待されている回答ではないと思うけど。
どこに原因があるのかを調べるのがデバッグです。
(ついでに、デバックではなく、デバッグです。)
以前も指摘したように、この題材はあなたにはまだ早いと思います。
強いて言うなら、それが原因です。

あせらず言語の基本から勉強することをお勧めします。
その過程でデバッグの能力も培われることでしょう。
by たいちう
2年前
フォーラム: C言語何でも質問掲示板
トピック: [再]文字を逆に
返信数: 6
閲覧数: 999

Re: [再]文字を逆に

かずまさん

> 入力が 0 の場合、0 と出力されますか?

私のプログラム、ダメダメでしたね。
by たいちう
2年前
フォーラム: C言語何でも質問掲示板
トピック: [再]文字を逆に
返信数: 6
閲覧数: 999

Re: [再]文字を逆に

「できるだけこの形を崩さず」という条件が難しいので無視して、私が普通に書くとこうなります。

コード:

#include <iostream>

using namespace std;

void printBinary(int a) {
	if (a) {
		printBinary(a / 2);
		cout << a % 2;
	}
}

int main() {
	int a;
	cout << "10進数\n";
	cin >> a;

	printBinary(a);

	return 0;
}
by たいちう
2年前
フォーラム: C言語何でも質問掲示板
トピック: 2次元配列について
返信数: 2
閲覧数: 721

Re: 2次元配列について

> なんとなーく最初に宣言した[]の中にそれぞれmとnを代入?したというのは分かるのですが、
> その後のm+nの意味がわかりません。これ、どういう意味なんでしょうか………?

前半も間違ってます。
二次元配列の前に、まずは普通の一次元の配列を理解しましょう。
by たいちう
2年前
フォーラム: C言語何でも質問掲示板
トピック: チーム力が均等になるような班分け
返信数: 4
閲覧数: 1206

Re: チーム力が均等になるような班分け

> プログラミングを始めたばかりで、正直どの文字がどういう意味をしているのかわからないので、 > 申し訳ないのですが細かい単位での説明コメントを中学生にわかるようなレベルで教えて頂けると嬉しいです。 > これからプログラミングを覚えていくためにもどうかお力添え願います。 いきなり複雑なプログラムは書けなくて当然です。 しかし、他人に丸投げするよりも、簡単なプログラムから自分で作っていきましょう。 まず、属性やチーム分けの事を一旦忘れて、5人の能力値を乱数で割り当て、 それをそのまま表示するプログラムを目指しましょう。 (本来は40人ですが、デバッグを簡単にするため5人で作りましょう) これでも...
by たいちう
2年前
フォーラム: C言語何でも質問掲示板
トピック: マップ表示プログラムのデバック中に例外がスローされた。
返信数: 15
閲覧数: 4094

Re: マップ表示プログラムのデバック中に例外がスローされた。

むしろ、このプログラムはあなたにはまだ早すぎます。
作り直すというよりも、言語の基本を一通り勉強してから、再チャレンジするのがよいと思います。
by たいちう
2年前
フォーラム: C言語何でも質問掲示板
トピック: マップ表示プログラムのデバック中に例外がスローされた。
返信数: 15
閲覧数: 4094

Re: マップ表示プログラムのデバック中に例外がスローされた。

> この場合、どうすればいいのでしょうか。

C++の言語知識が非常に不足しています。基本を勉強する気はないのですか?
人が作ったプログラムをコピーするだけで、それなりのプログラムが動きますが、
それはあなたの実力ではありません。

ポインタの存在すら知らなかったようなので、入門書が必要だと思います。
今回のエラーも基本的なポインタの使い方を勉強することで解決するでしょう。
by たいちう
2年前
フォーラム: C言語何でも質問掲示板
トピック: マリオの炎の発射がうまくできません。
返信数: 10
閲覧数: 1350

Re: マリオの炎の発射がうまくできません。

でたらめ書いてもうまくいくはずがないでしょ。

ローカル変数のdirectionは、前回関数が呼ばれた時の値を覚えてないし、
複数の炎は全て同じ向きでよいの?
何より、RIGHTとLEFTが同じ値で、どのように区別するつもりなのですか?
by たいちう
2年前
フォーラム: C言語何でも質問掲示板
トピック: ☆C言語で電卓アプリについて☆
返信数: 3
閲覧数: 950

Re: ☆C言語で電卓アプリについて☆

> Win32 APIをつかったGUIなのか、

有名な入門サイトに Win32 API の例がありました。

猫でもわかるプログラミング
Windows SDK編 第1部 第53章 超簡単電卓
http://www.kumei.ne.jp/c_lang/sdk/sdk_53.htm

1章から全てやる必要はないかもしれませんが、
特に最初の方は勉強になると思います。


どんな言語を選択するか、どんな仕様にするか、なかなか面白い課題ですね。
by たいちう
2年前
フォーラム: C言語何でも質問掲示板
トピック: 値渡しと参照渡しの違い
返信数: 8
閲覧数: 835

Re: 値渡しと参照渡しの違い

まず、疲労コンパイルさんのお使いの言語はC++です。 C++には「参照」という機能がありますが、 このプログラムではそれを使っていないことを認識してください。 void swap(int& x, int& y) {} のように書けば、C++の「参照」となり、 これでも値の交換が可能です。 お使いの言語はC++ですので、まぎらわしい「参照」という言葉を避け、 「値渡し」と「アドレス渡し」という言葉を使って元の質問に回答します。 私の説明もおおざっぱです。 変数(num1)をメモ用紙と考えると、値渡しではメモ用紙のコピーを関数に渡していると考えられます。 関数の中でメモ用紙(コピー)を書き換えても...
by たいちう
2年前
フォーラム: C言語何でも質問掲示板
トピック: 【C言語】騎士(ナイト)配置の探索問題 ~4×4盤ver.~
返信数: 5
閲覧数: 1091

Re: 【C言語】騎士(ナイト)配置の探索問題 ~4×4盤ver.~

こういうのは大好きなので作ってみました。 手元にCの環境がなかったのでJavaですが何となく読めますでしょうか。 package test; public class Main { public static void main(String... arg) { backTrack(0, 0); } private static final int SIZE = 4; private static final int KNIGHTS = 8; private static int[] x = new int[KNIGHTS]; private static int[] y = new int[...
by たいちう
2年前
フォーラム: C言語何でも質問掲示板
トピック: ぼかしアルゴリズムについて
返信数: 2
閲覧数: 538

Re: ぼかしアルゴリズムについて

Photoshopがどうやっているのか判りませんが、
簡単な原理を考えてみました。
説明のため、円で切り抜き、背景色は白固定とします。
(方法が理解できたら応用もできるでしょう)

中心からの距離が100pxまではぼかしなし、
110pxでぼかし完了とします。

100pxの部分では、元の画像が100%、白が0%。
105pxの部分では、元の画像が50%、白が50%。
110pxの部分では、元の画像が0%、白が100%。

pixel単位でこのような処理は実装できますか?
もっと簡単に処理できるライブラリもあるかもしれませんが。
by たいちう
2年前
フォーラム: C言語何でも質問掲示板
トピック: テンプレートマッチングの一致度を求める問題です
返信数: 31
閲覧数: 2693

Re: テンプレートマッチングの一致度を求める問題です

オフトピック
milfeulleさんに、「短いコメントを連投するのもあまりよい行為とは言えないので、
推敲した上で書き込んだ方がよいと思います。」とも指摘されていましたよね。

C614bさんに書き込む義務はないのですよ。元の質問者の迷惑になりませんか?
私も他の人もC614bさんを排斥したいわけではありません。
ただ、「質問を見かけて、自分も気になったことがある」のなら、
別スレを立てて好きにしたらどうでしょうか。
by たいちう
2年前
フォーラム: C言語何でも質問掲示板
トピック: ソフトウェア開発のモチベーションを維持するには?
返信数: 4
閲覧数: 965

Re: ソフトウェア開発のモチベーションを維持するには?

> 自分が元々作りたいと思っていた機能を100%実装しきるために必要なこと モチベーション云々言っているので、趣味の話だと想定します。 色々な考えの人がいると思いますが、私なりの回答です。 作成の元々の目的は何だったんでしょうか? 自分にとって役に立つプログラムなのか、世の中に貢献したいのか、 シェアウェア等にして小遣い稼ぎをしたいのか、 練習のために作りたかったのか、それとも何か別の目的なのか。 仕事で作るならば、当初想定してた機能の100%を目指すのは当然ですが、 そうでないならば、なぜ当初の想定に拘る必要があるのでしょうか。 ちなみに私の場合は、大半が自分のためだけのプログラムです。 そ...
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 自機狙いが自機狙いされない
返信数: 3
閲覧数: 803

Re: 自機狙いが自機狙いされない

> c++は最近知ったばかりで時間もなく困ってます、どなたか原因がわかる方ご指導お願いします。 提示された部分には問題がないと思います。 実行できるよう最低限の追加をしたのが次のプログラムです。 class PLAYER; class ENE; class CONTROL { private: PLAYER *player; ENE *enemy; private: CONTROL() {} public: virtual ~CONTROL() {} void GetPlayerPosition(double *x, double *y); void GetEnemyPosition(doub...
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 配列とポインタが分からない
返信数: 8
閲覧数: 1120

Re: 配列とポインタが分からない

みけCATさん、解説ありがとうございます。
ようやく趣旨が理解できたと思います。

No.1のプログラムの12-13行目は問題ないので、
私のNo.4のif分の中もデクリメントのみですね。
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 行列の回転についての関数をたてる
返信数: 6
閲覧数: 783

Re: 行列の回転についての関数をたてる

> 行列の回転を実行する際にに関数を立てて、同じようなことを何度も書かないようにしたいのですが、できるのでしょうか?

この説明では何をしたいのか判りません。
同じようなことを何度も書いているプログラムを載せてくれたら、改善点を指摘できるかもしれません。
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 配列とポインタが分からない
返信数: 8
閲覧数: 1120

Re: 配列とポインタが分からない

正確には14行目ではなく、12~14行目ですね。 例えばxについては、最初に配列の先頭を指していたポインタは、 10回目のインクリメントをすることで、4行目で確保された配列aの範囲から飛び出します。 飛び出すだけなら良いのですが、17行目でそのポインタを使っているのがまずいのです。 今回の問題は、 1) 配列を初期化する 2) ポインタを使って配列をコピーする 3) コピーされた配列を確認する という意味でしょうから、17行目の確認でポインタを使う必要はなく、 コピーの最後でポインタが範囲外を指すことになっても構わないでしょう。 > 代入において、最後のループではデクリメントをしないことで未定...
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 三角測量で座標を求めるプログラム
返信数: 4
閲覧数: 1611

Re: 三角測量で座標を求めるプログラム

オフトピック
三角測量は既知の2点からの角度を使って3点目の座標を求める手法です。
https://ja.wikipedia.org/wiki/%E4%B8%89 ... C%E9%87%8F

既知の3点からの距離だと、求める点が存在しなかったり、
存在しても平面上になかったりする場合もあるので、
そのような入力の場合にどう扱うのかを決める必要もあるでしょう。
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 三角測量で座標を求めるプログラム
返信数: 4
閲覧数: 1611

Re: 三角測量で座標を求めるプログラム

> 三角測量のやり方はなんとなくは分かるんですが

と別スレでありますが、一般には手で計算する方がプログラムを作るよりも簡単です。
適当な座標と距離から、たか0011さんの言うところの三角測量で、
手計算で座標を求めることができますか?
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 手書きではないtextを認識するプログラムを作りたい
返信数: 5
閲覧数: 920

Re: 手書きではないtextを認識するプログラムを作りたい

> やはりアルゴリズムの話になるので技術的な話はのってないのでしょうか。

アルゴリズムは技術的な話の内だと思うのですが。


> ゴシック形式、明朝形式と限定すればパターンは決まってるわけだから
> 手書きよりかは楽に認識できると思うのですが、その方法が分かりません。

フォントサイズによっても変わりますよね。
普通にニューラルネットワークなどで文字認識のプログラムをつくり、
パターンが決まっている分だけ判定の精度が上がる利点がある程度ではないでしょうか。
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: [JavaScript] なぜかうまくいかない
返信数: 4
閲覧数: 1105

Re: [JavaScript] なぜかうまくいかない

91行目は関数の内部ではないのでエラーになっています。
88行目の条件を満たすときに、95-104行目を実行したくないのならば、
その部分をelseにするとか。
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームプログラミングのスキルアップ方法についてお聞きします。
返信数: 4
閲覧数: 967

Re: ゲームプログラミングのスキルアップ方法についてお聞きします。

私はゲームプログラミングは趣味程度ですが、ゲームに特化しない方が、色々教材が見つかるかも、と。 デザインパターンが難しすぎて、かつ、コードを見せたくないならば、いっそこんなのが有効では? 『Cプログラミング診断室』 http://www.pro.or.jp/~fuji/mybooks/cdiag/index.html#mokuji または、『Effective C++ 第3版』には比較的易しいことも書いてあるのでいいかも。 https://www.amazon.co.jp/Effective-%E7%AC%AC3%E7%89%88-ADDISON-WESLEY-PROFESSIONAL-COM...
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルのy座標が0になってしまいます
返信数: 3
閲覧数: 444

Re: ファイルのy座標が0になってしまいます

printfの方も書式を調べて直しておいてください。
それと解決チェックをお願いします。
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルのy座標が0になってしまいます
返信数: 3
閲覧数: 444

Re: ファイルのy座標が0になってしまいます

ぱっと見ただけですが、ここが間違ってます。

fscanf_s(fp, "%d %d", &p.x, &p.y);

fscanf_s(fp, "%lf %lf", &p.x, &p.y);
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 引数の違う親クラスの関数が使えなくなる
返信数: 6
閲覧数: 910

Re: 引数の違う親クラスの関数が使えなくなる

確かに実装しなおしとも言えますが、私なら多分このようにします。
実際のfunc(a)の中身はそこそこ複雑な処理でしょうが、
それを2回書く必要はありません。

int func(int a) { return Base::func(a); }
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 引数の違う親クラスの関数が使えなくなる
返信数: 6
閲覧数: 910

Re: 引数の違う親クラスの関数が使えなくなる

ここに原因と解決法があります。

CodeZine『C++による開発で陥りやすい問題点の検証』
オーバーロードとオーバーライド
https://codezine.jp/article/detail/276?p=5
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 変数について教えてください
返信数: 7
閲覧数: 1311

Re: 変数について教えてください

うろ覚えのせいなのかもしれませんが、問題の体をなしていません。
プログラムか問題か、少なくとも一方に間違いがありませんか?
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルに書かれた式の計算について
返信数: 12
閲覧数: 2601

Re: ファイルに書かれた式の計算について

みけCAT さんが書きました: 課題で作成するべきプログラムの内容は
「指定された内容のファイルを作成し」
ファイルの作成をプログラムでする必要はないんじゃないですか?
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: c++の命名規則について
返信数: 8
閲覧数: 1453

Re: c++の命名規則について

> c++の開発者の好み… > あくまで利用者である以上は有無を言わずそれに順応しろということですかね… 文句を言うなら使うな、というのは極論ですが、不便に思う人が少数派なのではないですか? 標準ライブラリの部分と、自分(自社)で書いた部分が区別しやすいとも言えます。 多くの人が不便に思うなら、今の形に落ち着いていないでしょう。 最初の開発者の意向も尊重されますが、今や多くの人が標準化に関わっています。 現実問題として、30年以上使われている標準ライブラリの命名規則は変えられず、 自作の部分を気に入ったコーディングルールで作成するしかないのではないでしょうか。 スネーク記法で標準ライブラリに合...
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: ライブラリについて
返信数: 6
閲覧数: 1385

Re: ライブラリについて

> Gitの管理なる書籍はGitの欠点を補うための技術が載っているわけであってGitの機能ではないのですね! hideさんは、gitの欠点の話はしていないと思います。 ソースコードの管理は昔からの難題で、大人数で開発する場合は難しさも膨れ上がります。 現在はバージョン管理ツールを使って管理する方法が主流であり、gitはそのツールの1つです。 ソースコードの管理は、開発チーム毎にスタイルがあり、 バージョン管理ツールが求められている機能も様々です。 強力で多機能なので、すぐに使いこなせない人が多いとしたら、欠点と言えるかもしれませんが。 Excelにも技術書(解説書)がありますが、それがExce...
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 2次関数を遺伝的アルゴリズムを用いてもとめる
返信数: 3
閲覧数: 774

Re: 2次関数を遺伝的アルゴリズムを用いてもとめる

hideさんの書いているように、C言語の基礎は必要でしょう。
ある程度習得した後でないと、遺伝的アルゴリズムは困難かと。
その際には、「グレイコード」について調べてみるとよいでしょう。

まずはC言語で簡単なプログラムを自由に作れるようになりましょう。
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 演算子の優先順位について
返信数: 3
閲覧数: 721

Re: 演算子の優先順位について

まず、「演算子の優先順位」という言葉を誤解しているのでしょう。
評価の順番はまた別の話です。

x = a * b + c;

が、

x = ((a * b) + c);

と解釈されるという意味です。
もし、加算の優先度が高い規則だったら、

x = (a * (b + c));

と解釈されてしまいます。


次に、前置インクリメントと後置インクリメントの違いを理解していないようです。
以下を試して理解してください。

コード:

a = 5;
x = ++a;

b = 7;
y = b--;

printf("%d, %d, %d, %d\n", a, b, x, y);
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 線形リストの先頭移動
返信数: 11
閲覧数: 2258

Re: 線形リストの先頭移動

> ひとまず、リスト表示のコードも合わせて再掲します。

リスト表示、間違ってますよね。
最後の要素まで確認してますか?


> 前述した標準ライブラリがインクルードされています

だから、この部分も疑っているわけです。
多分大丈夫なのでしょうけど、「多分」を取り除きたいのです。
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 線形リストの先頭移動
返信数: 11
閲覧数: 2258

Re: 線形リストの先頭移動

> >リスト表示
> 実装してみました。現在のところ、再現を取ろうにもなかなか取れていません。

リスト表示が正しく実装できている保証もありません。
行き詰ったら、もろもろ最新のコード一式をあげてみてはどうでしょうか。

最小のデータと最小の手順で、不具合が再現する方法を見つけるのが大事です。
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 線形リストの先頭移動
返信数: 11
閲覧数: 2258

Re: 線形リストの先頭移動

> この、状況は全く同じなのに「起こったり起こらなかったりする」
> バグというのがどうにも不安で、質問させていただきました。
> どうかよろしくお願いします。

単なる再現性の低いバグでしょう。
なぜデバッグしないのですか?

私ならばリストの内容を表示する関数を作り、
並び替えの前後に表示してみます。
またデータの数も5件程度でデバッグします。
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 0.0 / -1.0 = -0.0
返信数: 3
閲覧数: 726

Re: 0.0 / -1.0 = -0.0

お使いの処理系が書かれていませんが、たぶん仕様です。

https://ja.wikipedia.org/wiki/IEEE_754

「ゼロは仮数が0の有限数である。
符号が別に定義されているので、符号付の2種類のゼロ +0 と-0 が存在する。」
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体,ポインタ
返信数: 6
閲覧数: 703

Re: 構造体,ポインタ

SetNode(), AllocNode(), InsertNode(), AppendNode(), DeleteNode()とあるように、
Nodeを操作する関数群を作りたかったのでしょう。

AllocNode()については、たまたま内容が1行しかないので、
必要性に疑問を持たれているのでしょう。
上記の関数群で、AllocNode()を作らずにcalloc()で済ます場合とどっちが良いでしょうか。
きっと著者は作るべきと思ったのでしょう。
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: "..." の使い方
返信数: 3
閲覧数: 767

Re: "..." の使い方

>...の呼び方

私も詳しくないけど。

「可変長引数テンプレート」
https://ja.wikipedia.org/wiki/C%2B%2B11 ... C.E3.83.88
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: ドキュメント/ビュー アーキテクチャにおけるドキュメント管理方法について
返信数: 2
閲覧数: 632

Re: ドキュメント/ビュー アーキテクチャにおけるドキュメント管理方法について

> あるいは他に定石があれば教えてください。

ビューが同期すべきデータを持たないのが理想なのでは?
ユーザがセルを操作したら、ビュークラスはドキュメントクラスの更新用メソッドを呼び出し、
自分自身やセルクラスの再描画メソッドを呼び出します。

セルクラスの描画に必要なデータはドキュメントクラスしか持っていないので、
セルクラス描画時には、ドキュメントクラスのデータ取得用メソッドを呼び出します。
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: パズルゲーム ひとふで書きの問題難易度について
返信数: 8
閲覧数: 854

Re: パズルゲーム ひとふで書きの問題難易度について

> スタート地点からの全ルート探索結果をツリーとして見たときに,
> 正解を含まない部分木が出現する深さが浅いほど難しい…? とか思ったのですが,
> そんな単純な話でもなさそうですね.

むしろ正解を含まない部分木の高さが影響すると思います。
迷路で例えると袋小路の長さでしょうか。
枝分かれがあっても、少し先で袋小路になることが判れば、
安心して進むことができます。

プログラムで解く場合は、また別の難易度の定義になると思います。
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 【雑談】ドラゴンクエストの賢者の石について
返信数: 4
閲覧数: 3839

Re: ドラゴンクエストの賢者の石について

dicさんが納得できるか判りませんが、そんなに不思議なことではないと思います。

まず、Wikipediaの記載に『一般によく知られた賢者の石は卑金属を金などの貴金属に変えたり、
人間を不老不死にすることができるという』、とあります。
錬金術という当時の最高の学問の考えた、『究極の物質』のようなものでしょう。

錬金術の目標の1つである「卑金属を貴金属に変える」性質に着目して、
近年の研究者の中には劇薬である黄血塩を指していると考える人もいるということ。
当然その研究者も、黄血塩が不老不死に関係があるとは考えてないでしょう。

(タイトルに「雑談」と付けるべきでは?)
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: mandelbrot集合
返信数: 4
閲覧数: 839

Re: mandelbrot集合

ちょっとググるとこんなのも見つかりますが、参考になりますか?

http://nepia01.blogspot.jp/2013/10/cgnuplot.html
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: mandelbrot集合
返信数: 4
閲覧数: 839

Re: mandelbrot集合

> 最も短くなるようなプログラムを教えていただけないでしょうか。 まずは長くても不格好でもよいのでしっかり動くプログラムを作ってください。 次にきれいで読みやすいプログラム。冗長な部分があれば整理します。 普通はここまでです。 そのうえで、もしもプログラムの長さを1バイトでも短くしたいなら、それは別の技術です。 「ショートコーディング」について調べてみてはいかがでしょう。 この掲示板にも得意な人はいるでしょうから、その段階になったら質問してください。 (1)不格好だが一応動くプログラム (2)きれいで読みやすいプログラム (3)限界まで短くしたプログラム 方正さんが目指すのはどこですか? いま...
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 初心者がフォームアプリケーション作るならwin32プロジェクトはきついですか?
返信数: 31
閲覧数: 30473

Re: 初心者がフォームアプリケーション作るならwin32プロジェクトはきついですか?

119章まで順番にやれとは言いませんが、
最初の10章くらいまではしっかり理解しながらやってはどうですか?
エラーが何を言っているかある程度分かるようになりますよ。

windows.hをインクルードするとどうなりますか?
またHGDIOBJの件は、正しくキャストをしていないのでは?
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 初心者がフォームアプリケーション作るならwin32プロジェクトはきついですか?
返信数: 31
閲覧数: 30473

Re: 初心者がフォームアプリケーション作るならwin32プロジェクトはきついですか?

> 結局長い目でみてWindowsプログラミングを極めるならどの開発言語がいいんでしょうか?

この目的でこの選択しならば、Win32 API 一択ですね。
Windowsプログラミングが極めるに値するかは疑問ですが。

まずは、Win32 APIをある程度自由に使えるようになってみては良いのではないでしょうか。
その頃にはVBAがここにあることのおかしさにも気づけるでしょう。
1つの事だけをやっていて極めようという事にも疑問を感じられるのではないでしょうか。
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 初心者がフォームアプリケーション作るならwin32プロジェクトはきついですか?
返信数: 31
閲覧数: 30473

Re: 初心者がフォームアプリケーション作るならwin32プロジェクトはきついですか?

> いやCはもう2年やってるのでそろそろ実用的なアプリを作りたいんです。 何年やっているかは関係なくて、どの位理解しているかです。 別スレの↓を見ると、基本が疎かになっているのではないかと思います。 > ちなみに連結とかはどうすれば? > lptstr=x+TEXT("bcd"); > でabcdってしたくても無理でした。 > とりあえずダイアログとか作ってファイルの一覧を表示したり、ダイアログ上で計算したりとかです。 > いなみにWindows フォーム アプリケーションだと1日で作れますか? 1日で作れるかどうかは人によるでしょう。無意味な質問です。それと作ろうとするアプリの難易度。 > ...
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 初心者がフォームアプリケーション作るならwin32プロジェクトはきついですか?
返信数: 31
閲覧数: 30473

Re: 初心者がフォームアプリケーション作るならwin32プロジェクトはきついですか?

Win32APIは敷居は高いですね。
C言語もそこそこ難しいし、Windowsプログラミングの仕組みというかお作法もそこそこ難しいし、TCHAR関連もそこそこ難しいです。
当然、これら以外にもそこそこ難しい概念は連続して出てきます。

目的が何か判りませんが、いきなりWin32でプログラムを作ろうとするのではなく、
まずはもう少しC言語を理解してはいかがでしょうか。
各個撃破です。
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 線形リストの基底クラス
返信数: 5
閲覧数: 882

Re: 線形リストの基底クラス

> 基底クラスでAdd/AddRange/RemoveEnd/Clear/Root/End/Next/Prev
> などの関数を一回書いて、あとは流用なんて出来たら便利だなと思って相談しました。

その後、進展はありますか?
Compositeパターンが使えると思うのですが、使えない理由があるのでしょうか。
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 線形リストの基底クラス
返信数: 5
閲覧数: 882

Re: 線形リストの基底クラス

何をやりたいのかよくわかりませんが、Compositeパターンが使えませんか?
以下にC++の実装例があるので、検討してみてください。

http://www002.upp.so-net.ne.jp/ys_oota/ ... /index.htm


全然違う場合、もう少しやりたいことの説明が必要かと。
不完全でもよいので、ソースコードとか。
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 勉強サイトについて
返信数: 2
閲覧数: 545

Re: 勉強サイトについて

深さ優先探索「など」が何を指しているのか、何のために勉強したいのか、 少し長くて理解できなかったコードはどのサイトか、などを書いてくれると答えが得られやすいかと。 特にどっかのサイトのコードのこの部分がわからない、など。 かなり古いサイトですが、昔私が勉強させてもらったサイトをとりあえず紹介します。 コンピュータ&パズル(トップページ) http://www.ic-net.or.jp/home/takaken/index.html パズル問題解法のアルゴリズム講座 http://www.ic-net.or.jp/home/takaken/pz/index.html 藤原博文氏の「再帰のお勉強」...
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: double型の計算ずれについて
返信数: 10
閲覧数: 1421

Re: double型の計算ずれについて

解決になっているので、質問者さんに読まれないかもしれませんが、 元々の疑問が解決していないのではないかと思うので一応書きます。 0.2というのは簡単な小数で、 0.2 + 0.2 + ... + 0.2 == (0.2 * 100) == 20 なのも自明です。 しかし、これは私たちが馴染んでいる10進数での話です。 コンピューターでは2進数が使われていますが、 0.2を2進数で表すと、0.00110011001100110011... という循環小数になります。 double型はfloat型の倍の精度を持っていますが、 無限に続く小数を扱えるわけではないので、どこかで切り捨てることになります...
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 簡潔なプログラム
返信数: 8
閲覧数: 787

Re: 簡潔なプログラム

最初の質問についてですが、整数値cも追加したらどうなるでしょうか。 3つの整数に重複がないとすると、大小関係は6通りになります。 cout << "1番小さい値は" << a << "です。\n" << "次に小さい値は" << b << "です。\n" << "1番大きい値は" << c << "です。\n"; というような書き方を6か所書くことになります。 出力のフォーマットを変更したくなった場合も、6か所直すことになります。 一般的に、これは良い方法とは言えません。 「大小の判定」のロジックと「結果の表示」を分けた方がシンプルになります。 ただ元々のプログラムも十分シンプルなので、著者の...
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 簡潔なプログラム
返信数: 8
閲覧数: 787

Re: 簡潔なプログラム

> ここの値が、なぜかおかしなことになってしまうのです。
> 例えばminの方に5を入力しても小さい方の値は、0ですと出てきてしまいます。

minはaで初期化していますが、その時のaの値は0なので、
minは0で初期化されるという事です。

aに数値を入力した後に、minとmaxをaで初期化せるのが、
問題集の意図でしょう。
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 文字が……………
返信数: 4
閲覧数: 480

Re: 文字が……………

正しく設定できてないから、そうなっているのだと思われますが。
試しに、次のように「L」を書いたらどうなります?

DrawString( 250 , 240 - 32 , L"Hello C World!" , Cr );
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 画像情報処理について
返信数: 4
閲覧数: 1214

Re: 画像情報処理について

輪郭が判るなら、輪郭の画素のX座標Y座標それぞれの最大最小を求めるだけです。
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 【共同開発者募集】 インタプリタ・コンパイラ制作
返信数: 28
閲覧数: 5037

Re: 【共同開発者募集】 インタプリタ・コンパイラ制作

質問の意図が伝わっていないようですね。 プロジェクトの難易度の要因は色々ありますが、 最も重要な要因(少なくとも要因の一つ)はプロジェクトの規模だと私は思っています。 そのためプロジェクトの規模を答えられるか聞いたので、 行数で答えるならばプロジェクトの全ソースファイルの行数の合計です。 「フラットシェーディングのフルソフトウェア3Dレンダラ」のプロジェクトの全行数が2000行で、 募集中のプロジェクトが完成した場合の見込みが10000行程度ということでしょうか? それならば、「今までの最大の5倍に挑戦」ということなので少々野心的とは感じますが、 1万行というのはさほどの規模ではないので、1人...
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 【共同開発者募集】 インタプリタ・コンパイラ制作
返信数: 28
閲覧数: 5037

Re: 【共同開発者募集】 インタプリタ・コンパイラ制作

> フラットシェーディングのフルソフトウェア3Dレンダラのプロジェクトは完成しています。 > また、2Dのゲーム用ライブラリなども今完成直前です。 > その他のプロジェクト(10~15個)はスパゲッティ化で放置状態になっています。 ↓これには答えていただけないのですね。 > 完成させたプロジェクトのうち最大のものと、今回のプロジェクトの見込みについて、 > 何千行とか何人月とかの単位で答えられますか? 「みんなでゲームを作ろう」という呼びかけも、滅多に成功しないようです。 それと比較しても人が集まるかどうか。 焦らずに身の丈に合ったものを作って経験を積むことをお勧めします。 最初のうちは小規模...
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 【共同開発者募集】 インタプリタ・コンパイラ制作
返信数: 28
閲覧数: 5037

Re: 【共同開発者募集】 インタプリタ・コンパイラ制作

規模はともかくとして、バグがあまりにも多いというのは、
設計が破綻しているのではないでしょうか。

今までどの程度の規模のプロジェクトを完成させたことがありますか?
今までの完成させたプロジェクトと、今回のプロジェクトの規模とが、
あまりにも差があるならば、優秀なプロジェクトマネージャーも必要になるでしょう。

完成させたプロジェクトのうち最大のものと、今回のプロジェクトの見込みについて、
何千行とか何人月とかの単位で答えられますか?
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 配列に格納された数値のペアを探し出す
返信数: 15
閲覧数: 1713

Re: 配列に格納された数値のペアを探し出す

かずまさんに先を越されてしまった。勉強になります。

ところで、15行目で、+1 は必要ですか?
sizeが最大になるのは、全ての数値が違う場合で、ROW*COL だと思うのですが。
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 配列に格納された数値のペアを探し出す
返信数: 15
閲覧数: 1713

Re: 配列に格納された数値のペアを探し出す

考えてみたら、C++を覚える方がよほど難易度が高いですね。 数値の範囲を決めてよいならば、次のプログラムで十分です。 #include <stdio.h> #define ROW 5 #define COL 4 #define MAX_NUM 10 int array[ROW][COL] = { { 1, 2, 5, 6 }, { 4, 2, 3, 7 }, { 2, 1, 9, 10}, {10, 3, 7, 4 }, { 8, 7, 6, 0 }, }; int main() { int m[MAX_NUM + 1][MAX_NUM + 1] = { 0 }; int i, j, a, b...
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 配列に格納された数値のペアを探し出す
返信数: 15
閲覧数: 1713

Re: 配列に格納された数値のペアを探し出す

> の部分ですが、これはC言語で言うとどのような処理をしているのでしょうか?
> C言語しか習っておらず、C++はよく分かっていない状態です。

C++のライブラリを使っています。
「stl map」でググりましょう。

C言語には該当するライブラリがないので、同等のものを自作する必要があります。
(探せばあるかもしれませんが)
その場合は難易度が少し上がりますが、C言語で作成しますか?


> 私の書き方がよろしくなかったですね。
> 反省します。

仕様を正確に文章にするのはプロにも難しいものです。
でも、これが書けないとプログラムは尚更書けないので、頑張ってください。
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 配列に格納された数値のペアを探し出す
返信数: 15
閲覧数: 1713

Re: 配列に格納された数値のペアを探し出す

> ペアとみなしてもらって構いません。

そうですか。
「他のリングバッファにあるかサーチしていき」とあったので気になったのですが、
ペアでよいなら、かずまさんのプログラムで完璧ですね。
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 配列に格納された数値のペアを探し出す
返信数: 15
閲覧数: 1713

Re: 配列に格納された数値のペアを探し出す

データが以下の場合、(2, 5)はペアとみなしますか?

{ 1, 2, 5, 2 },
{ 4, 2, 3, 7 },
{ 2, 1, 9, 10},
{10, 3, 7, 4 },
{ 8, 7, 6, 0 },
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: ループネストの簡略化
返信数: 1
閲覧数: 598

Re: ループネストの簡略化

> 上の例ですと3重程度ですから直接書いても大した問題ではありませんが、
> さらに重なると書くのも大変ですし、ミスも増えてきます。

この程度ならば十分簡潔だと思います。
さらに重なる場合、例えば10段階にネストするような場合でも、
下手な小細工をするよりも簡潔だとは思いますが、
そもそも処理的にどうなのよと思い、アルゴリズムを見直します。

どうしても多重の深いネストが必要な場合は再帰関数を使うでしょう。
実際に何をやりたいのか具体的でないと、これ以上のアドバイスは難しいです。
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 垂線による座標判別について質問です。
返信数: 3
閲覧数: 649

Re: 垂線による座標判別について質問です。

> 説明が中々上手くできなくて申し訳ないです…

画像を見ても何を言っているのか全く分かりません。
何とか説明してもらわないと協力しようがないのでは?
by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 遺伝的アルゴリズムについて
返信数: 48
閲覧数: 5381

Re: 遺伝的アルゴリズムについて

忙しく日が経ってしまい、読んでもらえないかもしれませんし、 読んでもらえたとしても、くっちゃべーさんにどれほど理解していただけるか判りませんが、 やり残した気がするので一応書きます。 遺伝的アルゴリズムでよくある失敗は、そこそこ成績の良い解に収束してしまい、 最適解を見つけられない事です。 この種のアルゴリズムの宿命のようなもので、決定的な解決方法を私は知りませんし、 多分存在しないと思います。 そこそこ成績の良い解を少々変更しても、成績が下がるだけで、すぐに淘汰されてしまいます。 普通の突然変異がうまく重なって、元の解よりも成績の良い解が得られる確率は非常に小さいでしょう。 TSPを日本の都...
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 遺伝的アルゴリズムについて
返信数: 48
閲覧数: 5381

Re: 遺伝的アルゴリズムについて

改善されたとのことで何よりです。

何故、反転が有効なのか全くわからないのならば、
問題の性質やアルゴリズムの特徴を全く理解していないのだと思います。
交叉が何故役に立たない(と私が思っている)のかも、判らないのでしょう。

質問掲示板なので質問は歓迎なのですが、自分で考えることを放棄していませんか?
プログラムが完成したのならば、当然ある程度は考えているとは思いますが、
次は自分が何を作ったのか、考えてみてください。

出し惜しみしたいわけではないですが、回答は数日待ってください。
私としては自明なことなので、どのように説明したら判りやすいか、
(酔って帰った今は)思いつきません。
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 遺伝的アルゴリズムについて
返信数: 48
閲覧数: 5381

Re: 遺伝的アルゴリズムについて

> 見た目です。怪しいものはのぞいたとしても、明らかに無駄な通り方をしているものが多いです。 どのように「明らか」なのか、具体的に説明できますか? 日本語で正確に説明できるなら、コーディングにすることも難しくないかもしれません。 日本語で説明できないなら、コーディングなんて不可能です。 コーディングできるなら、終了条件に使えますね。 交叉についてですが、TSPには有効でない操作だと私は考えています。 TSPの性質上役に立つはずがないと考えていますし、 実際プログラムに取り入れても改良されませんでした。 この点については、くっちゃべーさんは今回逆の結論を持っているかもしれませんが、 失礼ながら、...
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 遺伝的アルゴリズムについて
返信数: 48
閲覧数: 5381

Re: 遺伝的アルゴリズムについて

最短経路を求められるアルゴリズムではないと書きましたが。
何がご不満なのですか?

ちなみに最短経路を得られていないことは、どのように確認しているのですか?
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: あったかいCCレモンについて
返信数: 3
閲覧数: 715

Re: あったかいCCレモンについて

普通じゃないです。それを買ってみるのが普通じゃないです。
でも私も買ってしまいそうだけど、その場で開栓する勇気はないかな。屋外だとしても。
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 遺伝的アルゴリズムについて
返信数: 48
閲覧数: 5381

Re: 遺伝的アルゴリズムについて

仮に、くっちゃべーさんの作ったプログラムを私が作ったら、倍の速さで動くとします。 あるいは、くっちゃべーさんがPCを買い替えたら、 同じプログラムが5倍の速さで動くようになるかもしれません。 「一般的に何分か?」という質問に意味がないことが判るでしょう。 では、どうしたらいいでしょうか。 既にプログラムが完成しているとします。 1分後、3分後、5分後、10分後、30分後、、、などの成績を見てください。 何回も試して、傾向や平均を調べてください。 もし100回試した結果、5分後と比較して10分後の成績がよくなるケースが10回だった場合、 5分の時点で打ち切るべきでしょうか? 100回中1回でも成...
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 遺伝的アルゴリズムについて
返信数: 48
閲覧数: 5381

Re: 遺伝的アルゴリズムについて

やはり、自分が何をしているのか、よく判っていなかったのですね。 くっちゃべーさんの取り組んでいる問題、「巡回セールスマン問題」は、 「NP困難」と言われる難しさの問題です。 都市数が5の場合、あり得る経路の数は5!=120通りしかなく、 120通りを全て試して最短経路を見つけるプログラムは簡単に作れるでしょう。 都市数が10の場合でも、経路の数は10!=3628800通りであり、 都市数5と同じ総当たりのプログラムで最短経路を見つけることができます。 今どきのPCなら、殆ど瞬時に見つけられるでしょう。 都市数が20になると、経路の数は20!=2432902008176640000通りであり、 ...
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 遺伝的アルゴリズムについて
返信数: 48
閲覧数: 5381

Re: 遺伝的アルゴリズムについて

やはり根本的に誤解しています。
遺伝的アルゴリズムで最短経路が得られる保証はありません。

私が書いた「理論的最適解」と「準最適解」という言葉について考えてみてください。
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 遺伝的アルゴリズムについて
返信数: 48
閲覧数: 5381

Re: 遺伝的アルゴリズムについて

> 20都市もおそらく時間さえかければ解けると思いますが、 > それでは遺伝的アルゴリズムの意味がありませんので、20都市も1分ほどで解けるようにしたいです。 > 上のコード、さきほどのコード(全体のプログラム)を元に > なにが問題なのかあるいはなにを追加すべき教えて欲しいです。 「解ける」とはどういうことを指していますか? 既に次のように書いています。何か誤解していませんか? ↓ > 遺伝的アルゴリズムに明確な終わりはありません。 > 準最適解を得るためのアルゴリズムなので、 > 時間をかけても最適解が得られる保証はありません。 > >> ちなみに、以前のバージョンで交叉ありの方が成績が良...
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 遺伝的アルゴリズムについて
返信数: 48
閲覧数: 5381

Re: 遺伝的アルゴリズムについて

> 交叉なし・10都市なら1分ほどと言いますが、なぜそう言い切れるのかわかりません。 > 「突然変異しか遺伝子の中身を変化させることはできず、 > 突然変異ではどれを変化させるかはランダムになっている」 > これだと何分かかるかはそのときの運によりませんか? > 1分終わるときもあれば数分、数十分もしかすると数時間かかってもおかしくないと思うのですが・・・ > 1世代に1度でも確率として少なすぎるのでしょうか? 遺伝的アルゴリズムに明確な終わりはありません。 準最適解を得るためのアルゴリズムなので、 時間をかけても最適解が得られる保証はありません。 都市数が増えると爆発的に探索空間が広がるので...
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 遺伝的アルゴリズムについて
返信数: 48
閲覧数: 5381

Re: 遺伝的アルゴリズムについて

> 動かすためにゲームエンジンUnityを使用しますが、 > いかがいたしましょう? そのためにC#になったのですね。 > setTotalDistanceとshowRouteの中身についても > Unityの機能を大量に使っています。 showRouteはともかく、setTotalDistanceにはこのライブラリの機能は不要と思いますが。 遺伝的アルゴリズムの部分と、その結果を表示する部分がうまく分かれていないのでしょうか。 ゲームエンジンUnityは、私は触ったことはありません。 特に興味もなく、今後も触る予定はありません。 No.28について言えることは、メソッド名と実際の処理が一致し...
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 遺伝的アルゴリズムについて
返信数: 48
閲覧数: 5381

Re: 遺伝的アルゴリズムについて

> 自分がきちんと説明できているか不安になってきました。
> また、説明通りにコードが書けているとは思えなくなってきました。
> なのでソースコードを載せます。

不十分です。
これらの関数をどのように呼び出しているかが欠けています。


> また、setTotalDistanceとshowRouteの中身についてはライブラリ?の関数を大量に使っていましたので
> コメント通り問題なく処理できているものだとしてください。

ごちゃごちゃしている部分程、バグがあるものです。
この辺りも省略せずに、動かせるソースを載せてください。
必要ならばデータも。
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 遺伝的アルゴリズムについて
返信数: 48
閲覧数: 5381

Re: 遺伝的アルゴリズムについて

> ただ、突然変異のタイミングが気になります。 > その点について指摘お願いします。また、その他の気になる点についてご指摘ください。 何が気になるのか具体的に書いてください。 指摘のしようがありません。 その他については、現在の成績が気になります。 例えば5分かかって、理論的最適解に到達できていないとしても、 その時の距離が、理論的最適解と比較して数%長いだけなのか、 数倍もかかるのかでは、状況が全く違います。 > 1.すべての個体を評価 > 2.評価した結果に基づき、評価の高かった順に個体をソート > 3.すべての個体からルーレット方式にて2個体を親として選出。そのまま残して子1と子2とする...
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: [雑談] フォーラムルールの変更(掲示板の基本方針変更)について
返信数: 23
閲覧数: 3770

Re: [雑談] フォーラムルールの変更(掲示板の基本方針変更)について

容認すると、丸投げ率が高まるでしょう。
回答をもらえて当然と考える質問者が増えれば、
むしろ殺伐とするのではないでしょうか。
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 遺伝的アルゴリズムについて
返信数: 48
閲覧数: 5381

Re: 遺伝的アルゴリズムについて

> ・親となったデータには突然変異が起こらないようになっているがこの処理は適切か。 生物学の進化を考えると、一番優秀な個体がたまたま子孫を残せないことは当然あるので、 全遺伝子に突然変異が起こりうる方が「自然」です。 ですがアルゴリズム的には、折角得られた暫定的な最適解が失われてしまうのは避けたいところです。 もしかしたら2度と見つからないかもしれませんので。 処理が適切かどうかは、くっちゃべーさんがどのような処理をしているか、 文章だけでは伝わってこないので判断できません。 例えば10個体だとして、、、 1.全個体(親世代)を評価する。 2.上位2個体をコピーして子1と子2とする。 3.適当...
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 遺伝的アルゴリズムについて
返信数: 48
閲覧数: 5381

Re: 遺伝的アルゴリズムについて

大前提として、今は交叉なしの実装の話です。 順序表現の説明のため、将来実装する交叉を引き合いに出してしまった私の落ち度です。 混乱させて申し訳ありません。 > 実際には「平均すると100世代に1回、1つの遺伝子に突然変異が起こる」となっております。 > 1%では低すぎますか? 99世代の間は選択しか行わないことになります。 無駄なだけではなく、その間に遺伝子群の多様性が失われてしまいます。 ちなみに、生物学的な遺伝の知識が乏しいならば、 これを機に軽く勉強することをお勧めします。 多様性が失われることがアルゴリズム的にどういう意味を持つのか理解できると思います。 > これは一様交叉であることが...
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 遺伝的アルゴリズムについて
返信数: 48
閲覧数: 5381

Re: 遺伝的アルゴリズムについて

答えやすい方から書きます。 > しかし、総距離の短い2ルートは突然変異しないようになっています。 > 最短の記録消えるなどということは(上の条件で)起こりうることなのでしょうか? > それとも私のプログラムのバグでしょうか? 当然バグです。 デバッグしましょう。 > ここまでを1% の確率で行うようになっています その説明ではまだ曖昧ですので、確認させてください。 以下のどれをさしているのでしょうか。 A) 平均すると、100世代に一回突然変異が起こる。 B) 平均すると、10世代に一回突然変異が起こる。(10遺伝子×10世代に一回) C) 平均すると、12.5世代に一回突然変異が起こる。(8...
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 遺伝的アルゴリズムについて
返信数: 48
閲覧数: 5381

Re: 遺伝的アルゴリズムについて

> これは遺伝的アルゴリズムがうまくいっていると言えるのでしょうか? 言えないでしょう。 前も書きましたが、交叉がなくても機能するはずです。 交叉で性能が改善されることはありますが、 交叉なしでの性能が悪すぎるという事は、交叉以外の部分にバグがあるのでしょう。 都市数が少ないときはPCのスペックでごまかせても、 都市数が増えると爆発的に探索空間が広がるので、 ごまかしが効かなくなっているのではないでしょうか。 私の予想では深刻なバグがあるので、これから先はバグを潰す作業が最優先ですが、 自分の能力以上のプログラムに取り組んでいる人には難しい作業です。 必ずしも推奨される方法ではないですが、一番...
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 遺伝的アルゴリズムについて
返信数: 48
閲覧数: 5381

Re: 遺伝的アルゴリズムについて

> 3都市,5都市において交叉なしで解が収束しました。 > ただ、すべてのデータで都市の回り方が同じではなく > 1番良いデータにおいて解が収束しましたが、これでいいわけでよね? > 次のステップとしては何をすべきでしょうか? 「解が収束」が何を指しているのか判りません。 机上での予想通りの最短経路が得られたということですか? そうであれば最低限の部分はできていることになります。 そうでないならデバッグしてください。 次は都市数10です。 もし毎回乱数で都市の座標を決めているなら、 デバッグをやりやすくするために、毎回同じ座標の組を使ってください。 その10都市について、本当の最短経路を総当た...
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 遺伝的アルゴリズムについて
返信数: 48
閲覧数: 5381

Re: 遺伝的アルゴリズムについて

> とするととてつもない時間がかかりますし、何より総距離はなかなか減っていかないと思います。 > それでも実行して放っていけばよいのでしょうか? 突然変異の発生率を上げてもよいのですが、 10都市でとてつもない時間がかかるならば、 プログラムが正しく作れていない可能性もあります。 例えば、5都市でプログラムを作ってみてはいかがですか。 あるいは3都市とか。必ず最短経路が得られますか? > また、終了条件としてはすべてのデータで都市の回り方が同じになったらとなっていますがこれでいいですか? これはナンセンス。遺伝子の多様性を放棄しています。 最終的な解はトップだけ取り出せばいいのです。 ただ、一...
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 遺伝的アルゴリズムについて
返信数: 48
閲覧数: 5381

Re: 遺伝的アルゴリズムについて

> このように変わる突然変異をしております。
> 確認が取れたところで以下の(3)ですが、
> 10都市に変えて何をすべきなのでしょうか?交叉はまだ切り離していますよね?

交叉なしで解決してないのですよね?
それならば原因を突き止めて解決するだけですが。

何を困っているのか状況が判りません。
もう少し説明をしてもらえないと、アドバイスのしようがありません。
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 遺伝的アルゴリズムについて
返信数: 48
閲覧数: 5381

Re: 遺伝的アルゴリズムについて

> (2)に従いましたが、質問です。このとき交叉は完全に切り離しているので > 総距離が変わる。すなわち都市の通る順番が変わるためには突然変異しかありませんよね? > これだと総距離が減っていくとは言えないと思うのですが、減っていくような突然変異ってあるのでしょうか? > というよりそれは突然変異なのか?って思ってしまって質問しました。 > おそらく、私の解釈がおかしいのだと思います。 都市の訪問順について、 ABCDE... ↓ BACDE... のように変わることを突然変異と言っています。 私が勝手に言っているのではなく、一般的な表現と思ってください。 このときに、総距離が増えるときもあれ...
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 遺伝的アルゴリズムについて
返信数: 48
閲覧数: 5381

Re: 遺伝的アルゴリズムについて

「ひっすー」さん == 「くっちゃべー」さんでしょうか。 名前を統一してください。フォーラムルールも確認してください。 > やっぱり交叉以外の部分が問題のようですね。 うまくいっていない ↓ 交叉を変更 ↓ やはりうまくいっていない この状況のみから言えることは、あまりありません。 交叉の変更前と変更後のそれぞれに問題があるかもしれないし、 交叉以外の部分に問題があるかもしれないし、 交叉と交叉以外の両方に問題があるかもしれません。 > 以下のように回答されましたが、どうすればこのことが確認できるのでしょうか? > 突然変異の確率を上げてデータすべての通る都市の順番が同じになるまで待つとかでし...
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: C/C++ 実行速度
返信数: 5
閲覧数: 2307

Re: C/C++ 実行速度

> また、最適化を行わないで、java以上の速度を望めるのかです。 ここで言う最適化は、何を指しているのでしょうか? プログラマが色々工夫した結果でしょうか? コンパイラが最適化した結果でしょうか? 例として挙げているコードでは、演算した結果を使っていません。 最近のコンパイラが本気で最適化したら、forループを実行しないのではないですか? 実行結果が20秒もかかっていることから、デバッグモードでビルド・実行したのではないかと思いますが、 コンパイルオプションなど、ビルドの設定を教えてください。 速さを求めるならば、コンパイラに最適化させないで他の言語と比較しても意味がないと思います。 意味が...
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 遺伝的アルゴリズムについて
返信数: 48
閲覧数: 5381

Re: 遺伝的アルゴリズムについて

交叉についてまずい所もありますが、それ以前の問題のような気がします。
遺伝的アルゴリズムは、突然変異と評価と選択さえ機能すれば、解が収束するはずです。
一旦、これらの機能のみを正しく作り、完成後に交叉を実装してはどうでしょうか。

おそらく交叉なしでも、うまく動いてないのだと思いますが、
適当な指摘のためには、ソース全体を載せてください。必要ならば都市のデータも。
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: C++におけるdelete hoge と delete[] hogeの使い分けについて
返信数: 10
閲覧数: 4805

Re: C++におけるdelete hoge と delete[] hogeの使い分けについて

> 気になったのはこっちです

deleteしなくてはならない配列の要素数が判らなくて困ります。

配列でも配列じゃなくても、常にdelete[](あるいは常にdelete)するような設計も可能だったかもしれませんが、
C++ではそのような文法は採用されませんでした。

# 不採用の理由は、時代的にコンパイラの実装が面倒になるからかな?
# あるいは、プログラマに自由と責任を与えるC言語の方針の踏襲かも。
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: Hello worldよりもっと前の議論
返信数: 30
閲覧数: 9145

Re: Hello worldよりもっと前の議論

> windowsapiって本当何でもできますね。恐れ入ります。
> でもwindowsapiって使えるようになったのって最近じゃないですか?
> windows95時代windowsapiを使えるそんな環境ってあったんでしょうか?

私が触ったことを今思い出せる範囲に限っても、例えば、
1998年発売のVC++6.0なんかでは普通に使えてました。
VB6やDelphi5でも使えましたし、それ以前のバージョンでも使えてましたよ。

使えなかったとしたら、Windows自体が使い物にならず、普及しなかったでしょうね。
Windows95時代のプログラマはどうしていたと思っていたのですか?
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 数独を解くプログラム3
返信数: 14
閲覧数: 1482

Re: 数独を解くプログラム3

> 結果はというと、誤入力が大幅に減りました。 > ですが、実際に埋めて、それが正解というのも増えていません。 > 条件を厳しくしたからだと思います。なんとか6月中には完成させたいです。 > プログラム、アルゴリズムに対するご指摘よろしくお願いします。 結構プログラムは書けていると思いますが、根本的な考え方が間違っていると思います。 数独の解き方についてではなく、プログラムの作り方についてです。 誤入力が減ったとありますが、誤入力することが一度でもあるならば、それはバグです。 条件を厳しくしたから正解が増えていないと推測していますが、 条件には正しい条件と間違った条件しかありません。 いい塩梅...

詳細検索ページへ移動する