検索結果 418 件

by たいちう
3年前
フォーラム: C言語何でも質問掲示板
トピック: 遺伝的アルゴリズムについて
返信数: 48
閲覧数: 5242

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

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

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

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

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

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

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

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

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

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

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

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

Re: C/C++ 実行速度

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

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

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

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

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

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

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

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

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

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

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

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

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

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

> 結果はというと、誤入力が大幅に減りました。 > ですが、実際に埋めて、それが正解というのも増えていません。 > 条件を厳しくしたからだと思います。なんとか6月中には完成させたいです。 > プログラム、アルゴリズムに対するご指摘よろしくお願いします。 結構プログラムは書けていると思いますが、根本的な考え方が間違っていると思います。 数独の解き方についてではなく、プログラムの作り方についてです。 誤入力が減ったとありますが、誤入力することが一度でもあるならば、それはバグです。 条件を厳しくしたから正解が増えていないと推測していますが、 条件には正しい条件と間違った条件しかありません。 いい塩梅...
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 大学院入試の問題です!解けません!
返信数: 14
閲覧数: 1811

Re: 大学院入試の問題です!解けません!

題意としては、2重のforループでf1と同じ処理を書け、だと思います。
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 数独を解くプログラム3
返信数: 14
閲覧数: 1414

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

「GとFで7と9が使われるので、下段左ブロックに注目すると、Hには1または6が入ることになります。」

言い換えると、

「GとFで7と9が使われるので、同じブロックのHには7と9は入りません。」

この処理が抜けていませんか?
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 数独を解くプログラム3
返信数: 14
閲覧数: 1414

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

時間がないのでNo.10のプログラムはちゃんと見ていません。 No.7のプログラムで致命的な点を2つ見つけていたのですが、 どうやらそれは修正されたようですね。 > 結果的にどこかのマスのフラグを1つに絞れるつもり(今なら6より7,9。7,9より1のみになる)なのですが、 > 代入まで持っていくことができません。 予想と結果が違うんですよね? 結果は突然湧いて出てくるわけではなく、途中経過を経て結果が導かれます。 プログラムを作るときに予想していた途中経過は、どこまで予想通りでしたか? それをちゃんと確認しましょう。 # もしかして、すごく原始的な開発環境なのですか? # Break Poin...
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 大学院入試の問題です!解けません!
返信数: 14
閲覧数: 1811

Re: 大学院入試の問題です!解けません!

> (1)は実際にプログラムを再現してみて、値を代入したら答えはわかるのですが、 > このような筆記試験では頭の中で場合分けを重ねて時間をかけて答えをだすしかないのでしょうか。 大学院の難易度や、院試全体でのこの問題の難易度が判りませんが、情報系の大学院なら、 この程度の問題を時間をかけずに答えを出すことが期待されているのではないでしょうか。 (1)が何をするプログラムか日本語で正確に説明できますか? 何かをするプログラムを自分で考えて自由に作れるようになれば、 プログラムを読んで、何をするプログラムなのか判るようになります。 圧倒的に練習不足でしょう。 > (2)は題意はわかるのですが、まっ...
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 数独を解くプログラム3
返信数: 14
閲覧数: 1414

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

次はこれですね。 > 中段左ブロックで6が入るのはDEだけになります。 > 従って、縦並びのFには6が入らず、Fに入るのは7と9だけとなります。 Fのタテヨコとブロックを見ると、6・7・9の可能性がありましたが、 中段左ブロックの6の入るマスがD・Eのみになったことから、 Fから6の可能性がなくなりました。 判定の原理は「Cに6が入らない」を導いたのと同じはずです。 順々にやっていって、どこまでコーディングとテストができますか? # プログラムに無駄は多そうですが、できればまず完成させましょう。 # あれこれ効率を考えて未完成よりは、冗長でも完成させた方が、 # よほど価値があります。 # と...
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 数独を解くプログラム3
返信数: 14
閲覧数: 1414

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

> ただ、上のようにしてHに1が確定することはわかりますがプログラムにできません。 > そもそもこの解き方はn国同盟と関係あるのでしょうか?それすらわかってません。 > 何をどうデバッグして、何を見たらよいのでしょうか? Hが確定する理由は判りました。 一方、「n国同盟」という用語は定義が曖昧な印象を感じていますので、 この解法が「n国同盟」なのかは判断付きません。多分違うと思いますが。 「n国同盟」という解法も万能ではないでしょうから、 解けなかったからといって不具合があるとは限りません。 n国同盟が正しく実装できれば、「このマスのこのフラグはクリアされるはず」、 というマスを探し、予想通り...
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 数独を解くプログラム3
返信数: 14
閲覧数: 1414

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

前スレを読み返してみたけど、デバッグするようにさんざん指摘していますね。
今回も同じことです。

後で時間が取れたときに見るかもしれませんが、
それを待つよりもご自分でデバッグした方が早いかもしれないし、
何より建設的ではないですか?

(問題として間違っていなければ)数独が必ず解けるのと同じように、
この種類の不具合は必ず原因を突き止められます。
何故しないのですか?
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 数独を解くプログラム3
返信数: 14
閲覧数: 1414

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

今回は私がやっときましたが、前スレと「n国同盟」とやらを説明するサイトへのリンクを貼りましょう。

前スレ
数独を解くプログラム2
参考サイト
ナンバープレース、数独 解法まとめ

それと、現在「n国同盟」が正しく実装されたら解けると考えている問題も、
ソースコードに埋め込んでもらえると、デバッグしやすいです。
酒を飲み始めてしまったので、今日はここまでです。
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 【アンケート】ドラクエ1を一人で作ろうとしたらどの程度の年月がかかりますか?
返信数: 7
閲覧数: 3201

Re: 【アンケート】ドラクエ1を一人で作ろうとしたらどの程度の年月がかかりますか?

伸びませんね。 ソフト屋さんとru-puさんの回答を比べるだけでも、私としては興味深いのですけどね。 「詳細に仕様を検討しないと分からない」「仕様で悩む必要のない」と、 全く逆のことを書かれています。 経験年数は30年以上だけど、ゲームを作ったことのない私としては、 本業が忙しすぎなければ、DXライブラリ等の習得を含めても、 余裕を見て3か月くらいかなと思っていました。 回答を書くつもりはありませんでしたが。 ソフト屋さんの回答を見ると、ゲームのプロだけあって、 大ヒットする商品として作ろうとしているでしょうね。 あるいは完璧なイミテーションか。 経験や知識があるほど、ハードルが上がるようです...
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 二次元配列を連番で繋げて埋めるロジック
返信数: 6
閲覧数: 926

Re: 二次元配列を連番で繋げて埋めるロジック

リンク先の説明でもどんなゲームか判りませんでした。

> 自分の周囲にひとふでで書けるマスが何マスあるか?みたいなのを表示させたいです。

この部分をもっと厳密に説明することはできますか?
私には伝わらないし、プログラムを作る以上、絶対必要です。

それと最大サイズについてですが、リンク先に表示されている6×6ですか?
この程度ならwhileを使った原始的な方法でも、あまり問題にならないのではないかと。
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 二次元配列を連番で繋げて埋めるロジック
返信数: 6
閲覧数: 926

Re: 二次元配列を連番で繋げて埋めるロジック

真面目に考えると、かなり難しそうな問題なのですが、
盤面の大きさはどの程度までを想定しているのですか?
そして用途は何ですか?場合によってはベターな提案が得られるかも。


> 4以上ならその場合がなくなる気もするのですがどうなのでしょうか。

奇数×奇数なら起こりえるのです。
サイズと出発点が与えられたら、瞬時に判定できるのですが。
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: directXについて
返信数: 34
閲覧数: 2687

Re: directXについて

No.14で指摘されているように、どんなエラーか正確に書かないと。
No.15のエラーは、windows.hがインクルードされていないから発生しています。
プロジェクトを新しく作って、下のコードをビルドすることはできますか?

コード:

#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
    return 0;
}
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: directXについて
返信数: 34
閲覧数: 2687

Re: directXについて

> >>17
> どうやればいいのでしょうか・・・

先頭に #include <windows.h> を追加するとどうなりますか?
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: メモリリークやメモリ破壊について
返信数: 7
閲覧数: 1807

Re: メモリリークやメモリ破壊について

仕事でC++を使っていたのは5年程前までですが、 その頃にはそのようなツールは大変高価なものでした。 今はフリーで適当なのがあるかもしれませんが、 メモリリークならば、普通にデバッグできないことが問題です。 Aozora0630さんの質問や他の質問者への回答を見て感じるのは、 かなり基本を疎かにしているようだな、ということです。 あちこちからソースコードをコピーして、うまくつなぎ合わせれば、 そこそこのものができ上がるかもしれませんが、 基本を身に付けておかないと、先に進めなくなる時が必ず来ます。 ツールにできることは、必ずプログラマにも可能です。 よい機会なので、じっくりとデバッグをしてみて...
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 数独を解くプログラム2
返信数: 25
閲覧数: 3032

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

> p.s 現在のコードは載せるべきですか? 掲示板のルールに次のように書かれています。 「また、解決した時は、「解決しました」とだけ言って去らず、ソースコードや解決した方法を明記して下さい。」 まだ完全に解決はしてないと思いますが、キリが良いところで載せてもらいましょうか。 誰かの役に立つかもしれませんし、別の指摘をもらえるかもしれません。 最後に、最初から気になっていたけどスルーしていた点。 細かいことですが、次のように書き換えた方がよいと思います。 「Size + 1」という式に意味はありませんので。 for (int Num = 1; Num < Size + 1; Num++) ↓ ...
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 数独を解くプログラム2
返信数: 25
閲覧数: 3032

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

> →書いていますとのことですが、これは残ってしまった空白はバックトラック法で解くということでしょうか?

単純なバックトラック以外についてだと、No.2、No.3、No.6、No.7に書かれています。
意味が判らないなら、その旨を質問してください。


> みると、左上のボックスに4が二つ入っています。
> これをみる限り、コードがまちがっていると思うのですが、間違いはありませんか?

当然間違っています。判りますよね?
これは、「問題が難しくて解けない」という状態ではなく、
「考え方か実装に間違いがあるから解けない」という状態です。
何度も書いていますが、なぜデバッグしないのですか?
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: ネットワークを作成するプログラムにおいて特定の条件下で起きるエラーについて
返信数: 5
閲覧数: 690

Re: ネットワークを作成するプログラムにおいて特定の条件下で起きるエラーについて

95行目でNPotentialが300になっていたため、実行時エラーが発生しています。
PotentialIDの配列のインデックスとして有効な範囲はわかりますか?
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: 数独を解くプログラム2
返信数: 25
閲覧数: 3032

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

頑張りましたね。

> また、下のように指摘されたところも修正したつもりですが、
> これは機械的に入れ替えていることになっているのではないでしょうか?
> もし、そうだとしたら論理的に入れ替えるとはどういう意味なのか教えて下さい。

なぜ入れ替えたのか、説明ができるなら結構です。


> 実行結果については、同じ数字を行・列・ボックスに2つ以上入れるようなことはなくなりました。
> しかし、多くの空白を残しています。なんとしても解けるようにしたいです。
> たくさんのご指摘お待ちしております。

この件については、私もyokoさんも既に書いています。
それ以上に何が必要なのですか?指摘の数?
by たいちう
4年前
フォーラム: C言語何でも質問掲示板
トピック: ネットワークを作成するプログラムにおいて特定の条件下で起きるエラーについて
返信数: 5
閲覧数: 690

Re: ネットワークを作成するプログラムにおいて特定の条件下で起きるエラーについて

やりたいことは全くわからないけど、main()の変数sizeをグローバル変数にして、
Rand()を標準関数のrand()にしたところ、vectorの範囲外へのアクセスで落ちました。
51行目とかは正しいの?

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