- 1 名前:デフォルトの名無しさん [2010/01/18(月) 23:25:55 BE:265079647-S★(508111)]
- あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他の発言はスルーの方向で。
【質問者へ】 回答者の便宜のため、質問の際は以下を行うことを推奨します。 ・質問は【質問テンプレ】を利用してください。 ・問題文は、出題されたまま全文を書いてください。 ・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。 ・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。 ・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。 ・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。 ・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。 【質問テンプレ】 [1] 授業単元: [2] 問題文(含コード&リンク): [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm 【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html 【過去ログ検索】 chomework.sakura.ne.jp/ 【wiki】 www23.atwiki.jp/homework/ 前スレ C/C++の宿題片付けます 133代目 pc12.2ch.net/test/read.cgi/tech/1260532772/
- 765 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 19:54:01 ]
- >>764
バイナリが更新されていないからじゃないかな
- 766 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 19:57:07 ]
- >>765
どういう意味なのでしょうか?
- 767 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 19:57:42 ]
- >>762
問題によっては最適解近辺は金太郎飴の断面みたい な状況であることを原理とした探索法のことではな いかと想像
- 768 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:03:46 ]
- >>766
修正前の実行ファイルを動かしたまま ソース修正 → コンパイル → リンク (で、実行ファイルが上書きできなくて エラー) → 再実行 →あれ? 古いままの挙動じゃん → 実行ファイルのタイムスタンプ確認 アチャー
- 769 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:06:04 ]
- >>768
試してみましたが、それはないと思います。実際自分が作ったものは10.11行があっても動きますが、実際本に書いてあるのは それの10,11行目がないものが書いてありました。
- 770 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:08:33 ]
- >>768
申し訳ありません。もう一度試してみたらうまくいきました。どうやらその行をctrl+xで切り取ったあと再び貼り付けてしまったようでした。 本当に申し訳ありませんでした。
- 771 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:09:20 ]
- 俺試してみたけど削除したらピラミッドなんて出てこんよ
- 772 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:12:09 ]
- >>764
こちらで試したところでは、10行目、11行目を省くとピラミッドにはなりませんでした。 段数を入力してください。(0から40まで) 5 * * * * *
- 773 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:17:30 ]
- >>770
>うまくいきましたというのは768さんのいう通りということです。 すいません。
- 774 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:22:32 ]
- つまり?
- 775 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:24:16 ]
- >>774
?
- 776 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:24:51 ]
- >763
どこを切り取ってみても、数字がおなじ規則で並んでいる。 >760 の 1 の例だと 1 クリック目 9 種類のページにアクセス可能 2 クリック目 9 * 10 種類のページにアクセス可能 3 クリック目 9 * 10 * 10 種類のページにアクセス可能 もともといたページを含めて、ちょうど千種類のページにアクセスできる。 これは、どこを切り取ってみても、同じように数字が並んでいるので、 1 以外の数字についてもあてはまる。 規則的にならんでいるので、検証するにしても、 1 だけ検証できれば全部OKみたいな感じ。 1クリック目の選択肢が 9 種類しかなくて、n^3 の爆発力をかなり損しているけど ぎりぎり届いてた。n^3 の爆発力が重要な問題だった。
- 777 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:25:41 ]
- 数学的なことはわからんけど、こんな法則をみつけた。
a = pow(N, 1/3) /* ページ数の3乗根をとる */ min = floor(a) /* 天井とそこをとる */ max = ceil(a) min = pow(min, 3) /* 3乗して元に戻す */ max = pow(max, 3) if(min < N && N <= max) { /* レンジに収まってれば */ printf("答えは %f だよ", ceil(a)) } else { printf("答えは %f だよ", floor(a)) }
- 778 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:37:05 ]
- >>750のように一つずつずらしていけば、3クリック以内で到達できるようにできるってことか。
- 779 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:44:05 ]
- 1000なら10個でいいってこと?
1000から999へいけるか。 1000 -> 1(2-11) -> 11(102-110) -> 110で最大到達地点は110では。
- 780 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:46:45 ]
- 間違えた。一手目が1だけではない。再考する。
- 781 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:56:59 ]
- 1から初めて全部いけそうだな。他の数字も純粋しているだけだから同様ってことか。
1 2- 2 12- 3 22- ・・・・ 10 92- 11 102- 12 112- ・・・・ 100 992- ・・・・ 998 972- 999 982- 1000 992-
- 782 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:59:44 ]
- >>776
9通りがよくわからなかったが今わかった。1は自分自身に向かわせてるからね。 2から初めて他所で自分自身に向かわなければこっちの方が効率良いはず。
- 783 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 21:02:36 ]
- 一番重要なことは、金太郎飴方式だと、
リンク先のユニーク性を簡単に確保できることだね。 N^3 + N^2 + N + 1 >= N この付近が最適解だってのはわかってたけど、 ユニーク性の確保が悩みの種だったし。 1クリック目のとび先と、2クリック目の飛び先がかぶってたら 大きなロスになるし。
- 784 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 21:52:22 ]
- max(links(n)) * Σlinks(n)
これで評価してみれば?
- 785 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 22:16:13 ]
- N=8の時の金太郎飴状態なリンク例
1:4 7 2:1 7 3:1 6 4:7 5:1 6 6:1 8 7:5 8 8:2 3
|

|