12/01/20 22:21:43.78
>>491
そりゃ失礼
493:デフォルトの名無しさん
12/01/20 22:23:30.45
[1] 授業単元:画像処理
[2] 問題文(含コード&リンク):URLリンク(s2.etowns.slyip.net)
[3] 環境
[3.1] OS: Windows Vista
[3.2] gcc
[3.3] 言語: C
[4] 期限: 1月23日
宜しくお願い致します。
494:475
12/01/20 22:41:43.18
URLリンク(ideone.com)
現在の↑の版はbugも無いし、ちょっとだけ賢くなったので
私は手を引きます。
この版では、available_places変数は置ける場所の数を格納しています。
置ける場所が少なければ少ないほど、早めに置いておく必要があるし、
置ける場所の多ければ多いほど、後に置けばいいので、
cmp_available_places()内では、
置ける場所が多い < 置ける場所が少ない
として数の大小を逆にして比較関数を作成しています。
srand()とした場合に私の乱数では以下のような箱を生成します。
495:475
12/01/20 22:43:58.32
現在はこいつらを20個置けるのですが、
こいつらを21個以上置けるようになりましたら教えて下さい。
私も勉強させて欲しいです。
置ける箱の数は最大で 25 個
置ける箱の一覧
bl[i](size_x, size_y, S, x, y)
bl[0](4, 20, 80, -1, -1)
bl[1](30, 3, 90, -1, -1)
bl[2](94, 1, 94, -1, -1)
bl[3](68, 2, 136, -1, -1)
bl[4](9, 16, 144, -1, -1)
bl[5](6, 26, 156, -1, -1)
bl[6](2, 81, 162, -1, -1)
bl[7](4, 52, 208, -1, -1)
bl[8](37, 6, 222, -1, -1)
bl[9](10, 28, 280, -1, -1)
bl[10](98, 3, 294, -1, -1)
bl[11](25, 15, 375, -1, -1)
bl[12](14, 27, 378, -1, -1)
bl[13](22, 20, 440, -1, -1)
bl[14](20, 25, 500, -1, -1)
bl[15](12, 43, 516, -1, -1)
bl[16](40, 13, 520, -1, -1)
bl[17](44, 12, 528, -1, -1)
bl[18](19, 29, 551, -1, -1)
bl[19](32, 18, 576, -1, -1)
bl[20](7, 84, 588, -1, -1)
bl[21](76, 8, 608, -1, -1)
bl[22](88, 9, 792, -1, -1)
bl[23](14, 58, 812, -1, -1)
bl[24](12, 69, 828, -1, -1)
496:デフォルトの名無しさん
12/01/20 23:19:57.45
あ
497:デフォルトの名無しさん
12/01/20 23:43:23.44
>>490
実行時も半角です
498:442
12/01/20 23:58:58.14
>>494
ありがとうございます!ほんとうにありがとうございます!
この土日でいっしょうけんめい読み込んで理解してみせます!
499:デフォルトの名無しさん
12/01/21 00:04:19.78
>>494
コードを見ずにレスしててすまんが、小さい箱のサイズはばらばらにしてるんだよね
500:499
12/01/21 00:05:24.62
ああ、なってそうだったごめん。
501:デフォルトの名無しさん
12/01/21 01:16:56.46
Sequence-pair - Wikipedia
技術的背景
集積回路設計の一工程である配置計画では、回路として実現するために必要な様々なモジュールを、シリコン基板上にどのように配置するかを検討する。
「集積回路を出来るだけ小さく設計する」という要求は、配置計画において「モジュールを互いに重なることなく、出来るだけ小さい矩形領域内に配置する」という要求に置き換えられる。
隙間無く配置する作業はモジュールが数個から十数個程度であればまるでパズルのようだが、これが数百、数千、それ以上となると、とても人間が手に負える規模ではないことが明らかだろう。
このような理由から、「モジュールを互いに重なることなく、出来るだけ小さい矩形領域内に配置せよ」という要求はフロアプラン問題と呼ばれ、
1980年代になると集積回路設計の自動化に取り組む内外の研究者の格好の研究対象となった。
フロアプラン問題はモジュールの形状を矩形に限定すると、大きさの異なる矩形をできるだけ隙間無く詰め込む問題となる。
この問題は矩形パッキング問題と呼ばれ、NP困難であり[1]、多項式時間で最適解を得る方法は知られていない。
ブロックの数が増えれば増えるほど配置のバリエーションが爆発的に増えていくため、問題解決のために配置の全バリエーションを探索するのは非現実的である。
切出し・詰込み問題に対する実用的解法
切出し・詰込み問題は,いくつかの図形を互いに重ならないように与えられた領域内に配置する問題であり,多くの分野に応用を持つ最適化問題である.
この問題は,長方形詰込み問題,円詰込み問題,コンテナ詰込み問題,多角形詰込み問題など図形の次元や形状によりさまざまなバリエーションを持つ.
切出し・詰込み問題のバリエーションの多くは NP 困難のクラスに属する組合せ最適化問題であり,実用的な規模の問題例に対して厳密な最適解を求めることは非常に困難である.
本稿では,さまざまな形状や大きさの多角形を長方形の容器に詰め込む多角形詰込み問題を取り上げて代表的な近似解法を紹介する.
URLリンク(www6.ocn.ne.jp)
502:デフォルトの名無しさん
12/01/21 01:22:06.74
そこで遺伝的アルゴリズムの出番ですよ
503:デフォルトの名無しさん
12/01/21 02:22:38.87
>>501
思考停止の人だ
504:デフォルトの名無しさん
12/01/21 04:15:37.45
完全解でなく回答速度、回答精度で課題の得点を決めるやつなのでは。速く正確な方がいいってやつ。
505:デフォルトの名無しさん
12/01/21 06:07:33.34
NP困難を持ち出してどうすんだっていう。
506:デフォルトの名無しさん
12/01/21 19:02:20.22
[1] 授業単元:アルゴリズムとC言語
[2] 問題文(含コード&リンク):
複数の単語を二次元の文字型配列w[20][10](20単語×(9文字+1))に入力し、一つの英文に合成して出力するプログラムを作りなさい。
ただし以下の仕様を満たすものとする。
・単語の入力を終了する場合は"END"を入力すること。
・一つの英文に合成するときは、単語間に空白を入れること。
・単語入力、英文合成は、それぞれtango、gouseiというサブプログラムを用いること
・ 文字列操作関数strcpy、strcat、strcmpを用いること。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2012年1月25日23:59まで
よろしくお願い致します。
507:デフォルトの名無しさん
12/01/21 21:38:58.70
>>506
strcmpが必要な箇所がないように見えるが・・・使いたきゃ使えってだけか?
508:デフォルトの名無しさん
12/01/21 21:57:52.57
ENDを入力して単語入力を終了するとき必要じゃね?
509:デフォルトの名無しさん
12/01/21 22:51:08.73
>>506
URLリンク(ideone.com)
510:デフォルトの名無しさん
12/01/21 22:51:18.62
>>506
URLリンク(codepad.org)
strcpy使ってないけど…だめですか?
511:デフォルトの名無しさん
12/01/21 23:01:49.55
>>510
main()のint i;消すの忘れてたわ
512:デフォルトの名無しさん
12/01/21 23:25:15.18
#include <stdio.h>
int main() 笑