[表示 : 全て 最新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代目



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/

607 名前:605 mailto:sage [2010/02/11(木) 14:05:28 ]
失礼3項演算子があったのね


608 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 14:11:20 ]
>>555
きっと反則技なんだろうけど。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10517.c

609 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 21:34:45 ]
>>602 code golfするの?
a;main(){for(;++a<101;)printf(a%45?a%5?a%9?"%d\n":"C\n":"B\n":"A\n",a);}

610 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 22:11:13 ]
>>555
int a;
scanf("%ld %ld %ld%*c", (long *)&a, (long *)&argc, (long *)&argv);
じゃだめか
Windows XP HomeEditionって64bitないよね

611 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 22:54:33 ]
>>610
たった3行の制約条件を見逃すようじゃ、お前マの適性ない。
転職を勧める。

612 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 01:00:07 ]
>>555
もう需要ないかと思うが、面白そうなのでやってみた。
バブルソートのありがたみを出すため、かつ、4bit余ったため、入力する値を4つに勝手に変更。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10519.txt

613 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 01:03:56 ]
>>612
1〜10だよ。

614 名前:612 mailto:sage [2010/02/12(金) 01:26:00 ]
>>613
1〜10にしてますよー。

615 名前:デフォルトの名無しさん [2010/02/12(金) 01:32:57 ]
[1] 授業単元:計算機実習
[2] 問題文(含コード&リンク):
hermes.esys.tsukuba.ac.jp/~sano/NumCompEx/project2.pdf
[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名とバージョン:VisualStudio2008
 [3.3] 言語:C
[4] 期限: 3/5
[5] その他の制限:特になし

よろしくお願いします。




616 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 02:49:14 ]
>>611
その前に就職をしないと

617 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 11:43:57 ]
>>615
問題文が理解できません! orz


618 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 12:44:18 ]
このスレの人ってちょっと考えると皆精神病院予備軍だな
>>585とか
>>548を解いて喜ぶ人とかw

619 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 12:49:19 ]
>>618
パズルを解く感覚だよ

620 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 12:50:35 ]
さすが現役精神病の方は言うことが違うね

621 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 17:21:53 ]
トルヒーヨのハルディンはここですか?

622 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 19:30:20 ]
>>555
n番煎かしれんがオラも参加!
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10521.c

623 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 19:31:59 ]
>>622
それは突っ込み待ちか?

624 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 19:33:42 ]
>>622
キレイに書くねー。

625 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 20:21:21 ]
>>555
n+1番煎じしてみた。
どこにも「同じ数字が複数回入力された場合、まとめてはならない」なんて書いてないよね。
ttp://codepad.org/C0n9Shhq



626 名前:625 mailto:sage [2010/02/12(金) 20:26:28 ]
ミスった…
× #define PSHORT_A(x) (((uint16_t*)&x)+2)
○ #define PSHORT_A(x) (((uint16_t*)&x)+1)
SHORT_Aも同様。

627 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 01:48:01 ]
>>555の問題って、入力がintの範囲内であることは暗黙の了解としても、[0, 10]の範囲にあることの確認は不可能だよね?
charの範囲内としたら、(たとえintが規格的に最小な16bitでも)できそうだが。

628 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 02:07:59 ]
>>627
お前は何を言っているんだ。

629 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 03:01:56 ]
答えが多すぎて、このパターンだけでいいか。出席を取ります。
@intをポインタとして実際使うメモリはintの配列
Aintを分解して4バイトとして4個の数字を使う
B1個の数字しか使わない

pc12.2ch.net/test/read.cgi/tech/1255277760/l2

630 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 03:58:19 ]
>>628
「半角文字以外に「あ」とか「阿」のような全角文字が入力される場合まで考えると、正しい結果が得られなくなる場合があるのでは?」
って言ってるんだと俺は推測する。
JISとかユニとかの知識が乏しいので、俺には実際どうなのかはわからんが。

631 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 04:33:14 ]
誰も>>585のコード見て苛つかないの?
同レベルだとみなされかねないし...
常連回答者だったら清書したくならないか?

632 名前:622 mailto:sage [2010/02/13(土) 05:17:54 ]
んじゃ、マクロを大文字に修正
#n
s/v(\(.\))/V(\1)/g
s/swap/SWAP/g
s/w\([^h]\)/W\1/g
p

633 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 09:50:31 ]
しかしこういうビット演算は今までまったくやったことが無いので、
回答者のみんながホントスゲーんだなと分かる。
>>625さんのようなバケットソートぽいのを自分でも書こうと思ったが、
まったく書けなかったのが辛いところ。

634 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 12:54:49 ]
>>633
まずは愚直なコードからでもいいから一歩を踏み出す事が大事。

635 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 18:42:25 ]
>>555 たぶんできてるはず。570のインスパイヤ

#include <stdio.h>
#include <stdlib.h>
int compareInt(int * left, int * right) { return *left - *right; }
FILE * OUT; int length = 3, * ans, * vals;
void createSwitch(int current, int * vals) {
int i;
if (current == length) {
for (i = 0; i < length; i++) ans[i] = vals[i];
qsort(ans, length, sizeof(int), (int(*)(const void*, const void*)) compareInt);
fprintf(OUT, "printf(\"");
for (i = 0; i < length; i++) { if (i != 0) fprintf(OUT, " "); fprintf(OUT, "%%d"); } fprintf(OUT, "\\n\", ");
for (i = 0; i < length; i++) { if (i != 0) fprintf(OUT, ", "); fprintf(OUT, "%d", ans[i]); } fprintf(OUT, ");\n");
return;
}
fprintf(OUT, "val = getchar() - '0';\ngetchar();\nswitch (val) {\n");
for (i = 0; i < 10; i++) {
vals[current] = i;
fprintf(OUT, "case "); fprintf(OUT, "%d", i); fprintf(OUT, ":\n");
createSwitch(current + 1, vals);
fprintf(OUT, "break;\n");
}
fprintf(OUT, "default:\nputs(\"input error\");\nreturn 1;\n}\n");
}
int main(void) {
OUT = fopen("shukudai555.c", "w"); vals = (int *) malloc(sizeof(int) * length); ans = (int *) malloc(sizeof(int) * length);
fprintf(OUT, "#include <stdio.h>\nint main(void) {\nint val;\n");
createSwitch(0, vals);
fprintf(OUT, "return 0;\n}");
return 0;
}



636 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 18:44:07 ]
C言語の宿題と聞いて飛んできました。

637 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 20:28:20 ]
>>629
@Aは、環境が書いてあるから、intを4bytesとして扱ったりポインタとして扱ったりの環境依存コードがかけるという解釈なんだろうか。

638 名前:568 mailto:sage [2010/02/13(土) 20:45:46 ]
>>571
ありがとうございました。自分今のところFORTRANしか
組めないんでFORTRANに移植するのやってみます。

639 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 21:33:20 ]
>>635
すげ〜
といいたいところだが>>584と同レベルかそれ以下である
ということを示していない気がしないでもない

640 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 22:40:48 ]
>>555
>>570 をマクロで見やすくしてみた
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10525.c

641 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 23:14:51 ]
うむ。
マクロを使うとここまで短く出来るんだな。
行数で稼いでいるプログラマは犯罪的だ
という教条の根拠か...
しかしこれは逆に言えば、マクロを使うことが
禁止された時、それを読む人が地獄の責め苦
を受けることをまた意味しているとも言えるなw

642 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 23:42:56 ]
>>612を改良した。

・入力する値を5つに勝手に変更。この方法だと6つ以上は俺には無理だな・・・
・マクロの使用で見やすくした。
・範囲外(全角文字も含む)が入力されても、問題なく再入力を促すのを確認。(01や09は範囲外としている)

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10526.txt

643 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 00:50:52 ]
>>641
コードのアセンブリ(実行最小単位)に対する圧密
度はC言語の出身地であるシステム記述の分野
では非常に重要な評価ポイントらしいね
その世界ではコードは圧密に書けば良いというもので
もなく逆に極端に希薄に書けば良いというものでも
なく結構奥深いらしい。
それにしても>>584>>640の例は同じ記述が書き
方によって極端に変わる良い例なんだろな

644 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 01:32:40 ]
>>640
おみごと

645 名前: ◆/91kCCQXBo mailto:sage [2010/02/14(日) 12:09:11 ]
555 たぶんできてるはず。570のインスパイヤ >>639 >>635のを借りて見た目I/Oを改良
#include <stdio.h>
#include <stdlib.h>
FILE *OUT; int length = 3, *ans, *vals;
int compareInt(int *left, int *right) { return *left - *right; }
void createSwitch(int current, int *vals) {
  int i;
  if (current == length) {
    for (i = 0; i < length; i++) ans[i] = vals[i];
    qsort(ans, length, sizeof(int), (int(*)(const void*, const void*)) compareInt);
    fprintf(OUT, "puts(\"");
    for (i = 0; i < length; i++) { if (i != 0) fprintf(OUT, " "); fprintf(OUT, "%d", ans[i]); }
    fprintf(OUT, "\");");
    return;
  }
  fprintf(OUT, "while((val=1, printf(\">\"), scanf(\"%%d%%*c\", &val)) != 1 || val<1 || val>10) {\n"
  "\t\t\t\t\tprintf(\"ERROR\\n\"); if(val==1) scanf(\"%%*s\");}\n\tswitch (val) {\n");
  for (i = 0; i < 10; i++) {
    vals[current] = i + 1;
    fprintf(OUT, "\t\tcase "); fprintf(OUT, "%d", i + 1); fprintf(OUT, ": ");
    createSwitch(current + 1, vals);
    fprintf(OUT, " break;\n");
  }
  fprintf(OUT, "\t}\n\t\t\t");
}
int main(void) {
  OUT = fopen("shukudai555.c", "w");
  vals = (int *) malloc(sizeof(int) * length); ans = (int *) malloc(sizeof(int) * length);
  fprintf(OUT, "#include <stdio.h>\nint main(void) {\n\tint val;\n\t\t\t\t");
  createSwitch(0, vals);
  fprintf(OUT, "return 0;\n}\n");
/*  return 0; */}



646 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 12:45:49 ]
あのー。誰も突っ込まないので俺が言う。

>>555
> 但しmain関数内ではint変数一つだけが使えるものとします。
> またmain関数の再帰呼び出しも出来ません。
> (main関数の引数、argc,argvをint変数として使用することも勿論禁止します)
> main関数のみで構成されるプログラムとして下さい。

お前一人だけどうあがいても落第だよw

647 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 13:36:52 ]
ソースを生成するんだろうけど、出てくるのはつまらなそうだね。
これなら、秀丸のマクロでいいんじゃね。

648 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 15:47:49 ]
>>555
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10527.c

649 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 15:57:40 ]
なんか、問題自体が不毛だよなぁ。


650 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 16:00:58 ]
とんち合戦の様相を呈してきたな。

651 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 16:06:28 ]
いやむしろIOCCC2ch版というべきか

652 名前:633 mailto:sage [2010/02/14(日) 16:09:58 ]
あ、思いついちゃった。
>>648さんの方法で、データを0-9で保存して1-10と表示させると、
INT_MAX.to_s.sizeの個数の数を扱えそう。
けどソートはどうするんだろうw

653 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 16:53:38 ]
てか依頼者が消えた問題にいつまでも拘泥するのは
宿題スレのマナー違反

654 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 11:25:56 ]
【質問テンプレ】
[1] 授業単元:データ構造とアルゴリズム
[2] 問題文(含コード&リンク):
生徒数1000人分の学力テスト(五教科)の得点データが有る。ここで、任意の生徒Aと
得点の傾向が一番近い生徒の番号を高速で抽出できるようデータ構造を組みなさい。
(合計点が近い、ではなく、各教科の得点の傾向が大事のようです。)

[3] 環境
 [3.1] OS: WinXP
 [3.2] コンパイラ名とバージョン: VC++
 [3.3] 言語: どちらでも可
[4] 期限: 無期限
[5] その他の制限: 無し


生徒のデータはstruct seito{int tensuu[5];};こんな感じです。
単に全部検索して得点差を計算したのを提出したらダメと言われました。
こういう問題を解く定石のようなものがあるのでしょうか・・・
先輩方、よろしくお願いします。

655 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 11:34:10 ]
>>654
簡単に考えれば、
0-20をE
21-40をD
41-60をC
61-80をB
81-100をA
みたいに評価をつけて、同じものを抽出すればいい気がする。
もうちょっと細かくランク分けしたほうがいいかな



656 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 12:33:42 ]
>>654
プログラムを組む以前の問題として、どうゆう回答をすれば先生が満足するのか
そこがイマイチ不明だ・・・。

傾向が似ているかどうか、というだけなら、各教科の得点を偏差値に変換して、
5次元空間上にプロットした時に、任意の生徒Aとのユークリッド距離が
最も近い生徒を選べばいい気がする・・・。

仮にそれでいいとして、高速抽出するためのデータ構造を組め、ってなると
要は任意の生徒Aに最も近い得点の傾向の生徒Bを予め計算しておいて
AとBを対で持たせておけばいいとか、そうゆうことかな?

657 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 12:44:28 ]
モデル化してそれに最適なデータ構造考えろと言ってるんだろ。
モデル化の部分はこれまで授業で触れられていると思う。

658 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 13:54:43 ]
>>654
皆全員0点だった場合は誰を選べばいい?

659 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 14:14:59 ]
誰でもいいんじゃね? みんな一緒だし。

660 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 14:16:28 ]
656 のやり方で、データを読み込むとき予めソートしておくというのはどう?

661 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 14:17:26 ]
日本語おかしいな。
データを読み込むときソートした状態にスレばいいんじゃないか?

662 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 14:19:12 ]
>>654
極端な例の場合
ある生徒の得点分布が(50,51,52,53,54)
の場合(52,52,52,52,52)よりも(95,96,97,98,99)
の人のほうを選出したほうがいいの?

663 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 15:04:57 ]
(0,20,40,60,100)のほうが近いとオモ

664 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 15:42:32 ]
単に差を出したらダメって言ってるんだから、{52,52,52,52,52}だろうよ

665 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 17:17:46 ]
>>654
「傾向が近い」というのは、例えば
A (70,63,77)
B (70,70,70)
C (90,81,99)
だと、A≒B じゃなくて A≒C、という解釈
・・・でいいのか?




666 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 17:32:36 ]
1) 合計の偏差値を取り、Aに近い10%を抽出候補を絞る
2) 五科目点数の総当たりの大小比較を行い、Aと共通なら1異なったら0として
その合計が最大のBを選出。
3) Bが複数出たらさてどうするか。

667 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 18:21:10 ]
取り敢えずまだまだC言語で純正に一気に解決終了!
って出来る問題じゃなさそうだな
数学の複素多様体の知識とかデータベースの知識も要りそう
な問題で他のシステム(殆どが固有の言語を持つ)との
連携も要るような..

668 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 18:23:34 ]
[4] 期限: 無期限
てのも何かコエーよw

669 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 18:29:58 ]
foreach(生徒 in 生徒たち) {
 if(指定生徒 == 生徒) continue;

  match_average = 0;
 for(科目番号 = 0; 科目番号 < 5; 科目番号++) {
   diff = 生徒の得点[科目番号] - 指定生徒の得点[科目番号];
   match_average += diff * diff;
 }
 
 if(best_match_average > match_average) {
   best_match_average = match_average
傾向が似ている生徒 = 生徒
 }
}

考え方は、これでいいのかな?
match_average は、ユークリッド距離とか平均二乗偏差を意味する数値だけど、
あえて平方根をとらないことが高速化になってるしw
 

670 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 18:34:10 ]
>>667
問題によっては複数の支援ツールからなるソリューションパッケージは
あっても単独ソルバーアプリにまではとても出来てない問題って沢山あ
るからな

671 名前:669 mailto:sage [2010/02/15(月) 18:56:34 ]
>>654
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10528.zip
うpしてみる


672 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 19:22:00 ]
俺だったら「極座標」を使い、生徒の得点を中心からの距離と
緯度、経度とかの角度で表す。
「成績球」を半径方向と角度方向の非合同領域に分割し
生徒がどこに所属しているかで似ているかどうかを決める。
データ入力の段階で所属を決めるから、検索はデータの1回の
通読だけで至って単純。
だが領域の取り方が相当恣意的になりデータの分布が事前に
分かっていたら結果のコントロールもかなり出来るんで
敢えて書くべきコードじゃないと思うんでパス
(実際の問題では球の中に決して一様に分布しないんで
この方法は不適)

673 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 20:02:38 ]
>672
出だしと、まとめが矛盾してるぞ?
まあ、つべこべ言わずにコードを書いてみろ。
言ってることが難しすぎて俺にはトンと理解できねえ、
どんなコードになるのか興味あるわ。
書いてください、お願いします。

674 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 20:12:17 ]
>>670
CとかC++とかJavaがソリューション系では好かれない理由は
書くべきプログラムは音楽みたいにmainで始まりトップダウ
ンに一気に終了ってパターンであるという固定観念を印象づ
けるからじゃね?ソリューション系ではどっちかというと
「絵」とか「図」を書くに近いんで。
多くのC/C++ Javaプログラムの実際はそうではないことは
ベテランにはわかってるんだが、教育プロセスにおいて
OJTで新人に教える時にコード字面から植え付けられる先入観が
結構邪魔してると認識されることが多いんじゃないかと

675 名前:671 mailto:sage [2010/02/15(月) 20:25:39 ]
>651
問題をよく読んでいなかった、データ構造を組まなきゃいけないのね。
0点だわwww




676 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 22:13:02 ]
>>654
類似度は得点を正規化して内積を取ったものとしている
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10529.c

677 名前:676 mailto:sage [2010/02/15(月) 23:03:19 ]
>>676
一番近いものだけ分かればいいから qsort じゃなくてもよかった

678 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 23:25:17 ]
依頼者(今回は質問者かな?)のレベルに追いついたことはわかったw

679 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 01:41:40 ]
>>615
問題を解説してくれたまへ
ここまでで挫けた

ステップ1
double v(double x){
return 4*(pow(x, -12)-pow(x, -6));
}
v(x)==εn (但しεn=-0.75) となる二つの x を二分法で求めよ


ステップ2
ステップ1 で求めた xin xout を用いて次の積分を計算せよ
s(εn)=2*γ*∫sqrt(εn-v(x))dx


ステップ3
ステップ2 の結果を用いて n を求めよ


ステップ4
???

ステップ1〜4 を使って γ の値を変化させ…頑張れ

680 名前:デフォルトの名無しさん [2010/02/16(火) 01:59:58 ]
ちょっと関係ないかもしれないんだが、今の時期って大学とか休みだから、今ある質問って何の宿題?
長期休暇とかの?それとも高校のか?

681 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 03:16:24 ]
大学院の専門分野での研究課題や入試問題を貼ってて、その後何も反応が
無い依頼は釣りだと思って、スルーしてたんだけど(´・ω・`) チガウノカナ?

682 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 04:12:58 ]
>>681


683 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 05:08:42 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10530.zip
[3] 環境
 [3.1] OS: WindowsVista
 [3.2] Visual C++ 2008
 [3.3] 言語: C++
[4] 期限: 2月17日まで
[5] その他の制限: 特になし

よろしくお願いします。

684 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 07:39:27 ]
>>681
研究室レベルのものはあったが(>>615) 入試はみかけない。

685 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 08:02:15 ]
実際に解く内容は簡単だけど
問題を理解するのが難しいw



686 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 08:57:46 ]
>>684
例えば >>554 とか、プログラム作成を除けば、東京大学大学院の
入試問題↓とほとんど同じだったりするからさ。
www.i.u-tokyo.ac.jp/edu/course/ci/pdf/2005_8_ci_istmajor_all.pdf

普通の回答依頼かとも思ったんだが、真面目に答えて後釣り宣言されるのも
アレだから、微妙に情報系を逸脱する宿題はスルーして様子を見てることにしてる

687 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 09:58:04 ]
>>684
>>615 は、基礎的な数値計算だろ。学部1年生レベル。

688 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 10:04:02 ]
数式こそ長くて複雑だが、やってることは方程式の解を求めることや数値積分だ。
2分法、セカント法、シンプソン公式を使えばいい。

689 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 14:48:36 ]
>>676
これは>654の求めてるものと違うんじゃないかな?
『使いまわしの効かない検索用情報』の収集を
フルスキャンで行っているので、力まかせの探索にしかなってないよね。


690 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 16:36:07 ]
>>689
一応正規化した段階の情報だけは使いまわせる

691 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 17:40:44 ]
>>654
>>676 の改造版
先に全ての生徒間の類似度を計算してみた

予め O(N^2) のコストがかかっているので、検索回数が N に比べて十分に多いときだけ有効
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10531.c

692 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 17:45:15 ]
データ数が増えた時のパフォーマンスの低下率
条件付きUPDATE処理に置ける実更新率
こういった観点からデータ構造に見直しが入る
やりかたは一つじゃなく、データの分布に
前提条件を置くことによって、相当のパフォーマンス
改善になるが、汎用性と信頼性は犠牲になる

693 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 19:02:05 ]
k-dimension tree の出番ですか。

694 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 20:36:27 ]
>>693
ある範囲内をすべて列挙するのは簡単そうだけど
ある場所の近所だけを調べるってのは簡単なの?

695 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 02:44:01 ]
C言語固有の問題では無さそう。
データベース板か数学板で聞いてからの
ほうが良さげ。てか依頼者はもう見てないのか?



696 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 03:38:52 ]
>>654
傾向の近さの指標として相関係数を使用。gccを使用しているので、VC++では改変が必要かも。
また高速化の余地は十分あると思います。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10532.zip

697 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 05:59:24 ]
こういう問題は、「相関度」は外部関数としてブラックボックス
として扱うんじゃね?

698 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 06:09:13 ]
相関度に最適なデータ構造の設計も課題なのだが。
そうだ、これもブラックボックスにしよう。

699 名前:デフォルトの名無しさん [2010/02/17(水) 06:34:49 ]
[1] 授業単元:C++
[2] 問題文(含コード&リンク):
  kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10533.txt

[3] 環境
 [3.1] OS: (Windows)
 [3.2] コンパイラ名とバージョン: (VC8)
 [3.3] 言語: (C++)
[4] 期限: ([2010年2月17日12:00まで]

非常に短い期間を設定していますがあくまで希望納期です


700 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 10:01:02 ]
>>699
無料デバッガ募集でつか?(・∀・)ニヤニヤ

701 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 10:04:06 ]
無料デバッグしてやるでつよ(・∀・)ニヤニヤ

m_SumList.AddTail((void*)&List1);

m_SumList.AddTailに渡すのは(void *)(CStringList **)&List1で本当にいいんでつか?

702 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 11:34:42 ]
>699
いくらでも生じる可能性はある

それにしてもC++で(void *)とか何考えているんだ

703 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 14:03:40 ]
funkてw

704 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 14:52:59 ]
>>697
そうだね。だが難しい。相関度に適当な仮定を入れないと
無理だろ
>>698は回答として完全にナンセンスだが、それ以前に
問題も曖昧過ぎかもね。

705 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 21:09:00 ]
[1] 授業単元:C
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10535.c
[3] 環境
 [3.1] OS: 問わず
 [3.2] Cがコンパイルできれば・・・
 [3.3] 言語: C
[4] 期限: 今日
[5] その他の制限:左側の要素をしきい値としたクイックソートです.閾値と等しい場合は右側へ
お願いします



706 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 22:00:48 ]
>>697
この問題の場合は高速で処理できることも重視されてるようだから、
ブラックボックス化しても処理速度が同等以上ならそのほうが良いけれど、
そうでなければ、どちらがいいかは一概には言えないよ。

707 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 22:32:12 ]
>>705
今日迄というのはいくら何でも んG






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

前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