[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 08/02 19:37 / Filesize : 264 KB / Number-of Response : 786
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C/C++の宿題片付けます 134代目



200 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 17:29:34 ]
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
A組、B組、C組にそれぞれn人の生徒がいて、
A組の生徒が一列に並んでいる。
このとき、B組の生徒をA組の生徒の隣に並ばせたいが
なるべく隣同士で身長に差がないようにしたい。
どうやって計算すればいいでしょう?
加えて、C組の生徒もB組の隣に並ばせたい場合はどうすれば?
(身長の配列) double height_a[n], height_b[n], height_c[n];
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C++
[4] 期限: 2010年1月28日(木)16:00
[5] その他の制限: 特にありません

B組だけを考える場合はn!、C組も考える場合はn!×n!の並び方を生成して、
身長差の合計を計算して最小ならその並び方を保存って感じでいいと思うんだけど
そのやり方が思いつかない・・・

B組のみの場合
(B組をn!通り並ばせるループ){
diff = sum(n人の身長差の合計);
if(diffが最小){
B組の並び順を保存
}
}

こんな感じになると思うんだけど・・・
お助けください。






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<264KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef