C/C++の宿題片付けます 139代目
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2010/08/01(日) 18:01:51【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 http://www.linux.or.jp/JM/index.html
【過去ログ検索】 http://chomework.sakura.ne.jp/
【wiki】 http://www23.atwiki.jp/homework/
前スレ
C/C++の宿題片付けます 138代目
http://pc12.2ch.net/test/read.cgi/tech/1279286575/
0153デフォルトの名無しさん
2010/08/05(木) 12:53:40>>140-141
素数とかソートとかカレンダーとかすでにあるよ
無いのはぜひ追加してくれ
0154デフォルトの名無しさん
2010/08/05(木) 13:26:40統一するならこうだろ
int main(int argc, char **argv)
{
〜
return 0;
}
0155デフォルトの名無しさん
2010/08/05(木) 13:35:160156デフォルトの名無しさん
2010/08/05(木) 14:46:190157デフォルトの名無しさん
2010/08/05(木) 17:01:470158デフォルトの名無しさん
2010/08/05(木) 17:02:22**argv > *argv[]
0159デフォルトの名無しさん
2010/08/05(木) 17:26:290160デフォルトの名無しさん
2010/08/05(木) 18:19:25[2]ttp://www.comm.info.eng.osaka-cu.ac.jp/~sugi/C_lang2/C6.htmlの
[問題6-2]はこのページの本文の指示通りにやるとどうなるのでしょうか?
[3.1]Linux環境
[3.2] gcc
[3.3]C言語
[3.4]今日の午後9時
よろしくお願いします
0161デフォルトの名無しさん
2010/08/05(木) 19:17:04#include<stdio.h>
#include<stdlib.h>
struct TIME{
int day, hour, minute;
};
TIME time_add(TIME t1, TIME t2){
if( t2.day<0 || t2.hour<0 || t2.minute<0 ) exit(1);
t1.day += t2.day; t1.hour += t2.hour; t1.minute += t2.minute;
while( t1.minute > 60 ){
t1.hour++;
t1.minute -= 60;
}
while( t1.hour > 24 ){
t1.day++;
t1.hour -= 24;
}
return t1;
}
int main(void){
TIME t1 = {0} , t2;
while(1){
printf("(day, hour, minute)? ");
scanf("%d %d %d", &t2.day, &t2.hour, &t2.minute);
t1 = time_add(t1, t2);
printf("sum = %d %d %d\n", t1.day, t1.hour, t1.minute);
}
return 0;
}
0162デフォルトの名無しさん
2010/08/05(木) 19:42:55こうなるんじゃね?
(day, hour, minute)? 3 12 44
sum = 3 12 44
(day, hour, minute)? 1 22 54
sum = 5 11 38
(day, hour, minute)? 8 21 0
sum = 14 8 38
(day, hour, minute)? -1 -1 -1
0163デフォルトの名無しさん
2010/08/05(木) 19:53:15結果は間違えてないよね。
何に疑問持ったのか分かんない。
0164デフォルトの名無しさん
2010/08/05(木) 19:59:370165デフォルトの名無しさん
2010/08/05(木) 22:12:020166デフォルトの名無しさん
2010/08/06(金) 19:51:15閏年、カレンダーの課題もクルー!
0167デフォルトの名無しさん
2010/08/06(金) 21:21:51今の俺は無敵ではないが、どんな課題でも解けそうな気がするぅ〜あると思います。
0168デフォルトの名無しさん
2010/08/06(金) 21:54:06これが手取りで1000万だと結構すごいと思うけど。
0169デフォルトの名無しさん
2010/08/06(金) 21:58:38>>52-53をどうぞ
0170デフォルトの名無しさん
2010/08/06(金) 22:33:31いや手取りで。確かに大したことないからまだまだ貧乏人と言っているんです。
0171デフォルトの名無しさん
2010/08/06(金) 22:54:42コテ(トリ)つけて codepad にあげてごらんよ。
0172デフォルトの名無しさん
2010/08/07(土) 06:07:14http://kamome.2ch.net/test/read.cgi/newsplus/1281100346/
0173デフォルトの名無しさん
2010/08/07(土) 16:57:09どんな課題も解けないよ
0174デフォルトの名無しさん
2010/08/07(土) 18:03:47> 解けそうな気がするぅ〜あると思います。
日本語が読めない人って困りますねw
0175デフォルトの名無しさん
2010/08/07(土) 20:26:53柴田さんの明解C言語の入門編と前橋さんのポインタ完全制覇を
一通りやったのですが、この後にオススメな本はなんでしょうか?
もしよろしかったら答えていただけると嬉しいです。
0176デフォルトの名無しさん
2010/08/07(土) 20:28:120177デフォルトの名無しさん
2010/08/07(土) 20:28:43・256倍シリーズ
・最新アルゴリズム辞典
0178デフォルトの名無しさん
2010/08/07(土) 20:53:54このスレで遊ぶのはどうでしょうか?楽しいですよ。
>>176
至言ですねえ。
>>177
アルゴリズム辞典は持っていて損はないのですが、あー、やっぱりいちからよむものですかやっぱりそうですか
0179デフォルトの名無しさん
2010/08/07(土) 22:11:27どんな本でもそうだけど、頭から尻まできっちり全部読んでおいて
詳細は忘れてもいいからなにが書いてあったかだけ覚えておけ。
0180デフォルトの名無しさん
2010/08/08(日) 04:19:250181デフォルトの名無しさん
2010/08/08(日) 10:01:330182デフォルトの名無しさん
2010/08/08(日) 10:23:480183デフォルトの名無しさん
2010/08/08(日) 11:20:530184デフォルトの名無しさん
2010/08/08(日) 11:25:11うらやましい。俺なんか過去にといた問題と同じものが出たとしてもとける気がしない。
毎日が新鮮でいいのかもしれないが。w
0185デフォルトの名無しさん
2010/08/08(日) 21:12:21[3] 環境
[3.1] OS: Mac OSX 10.6
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:[2010年8月9日まで]
[5] その他の制限:できるだけ簡単なプログラムでお願いします。
0186デフォルトの名無しさん
2010/08/08(日) 21:15:470187デフォルトの名無しさん
2010/08/09(月) 01:17:24http://codepad.org/W9xfYypJ
0188デフォルトの名無しさん
2010/08/09(月) 10:16:34[3] 環境
[3.1] OS: Windows, Mac, Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: どちらでも可
[4] 期限: 2010年8月11日15:00まで
[5] その他の制限: スパゲティックな感じでも構わないので、読みやすい感じでお願いします。後学の為にできるだけ理解したいので。
0189デフォルトの名無しさん
2010/08/09(月) 12:25:270190デフォルトの名無しさん
2010/08/09(月) 12:51:00問題文が、C言語の範疇を越えてるよ
0191デフォルトの名無しさん
2010/08/09(月) 12:55:32system("open http://hogehoge.fugafuga");
だけで桶
0192デフォルトの名無しさん
2010/08/09(月) 15:31:080193デフォルトの名無しさん
2010/08/09(月) 15:35:300194デフォルトの名無しさん
2010/08/09(月) 19:51:11実数 -1.0 ~ 1.0 の範囲をもつ任意の長さの数列を、下記の条件でヒストグラムとして
表示するプログラムを作成せよ。
~ -0.95 (x < -0.95)
-0.95 ~ -0.85 (-0.95 <= x && x < -0.85)
-0.85 ~ -0.75 (-0.85 <= x && x < -0.75)
-0.75 ~ -0.65 (-0.75 <= x && x < -0.65)
-0.65 ~ -0.55 (-0.65 <= x && x < -0.55)
-0.55 ~ -0.45 (-0.55 <= x && x < -0.45)
-0.45 ~ -0.35 (-0.45 <= x && x < -0.35)
-0.35 ~ -0.25 (-0.35 <= x && x < -0.25)
-0.25 ~ -0.15 (-0.25 <= x && x < -0.15)
-0.15 ~ -0.05 (-0.15 <= x && x < -0.05)
-0.05 ~ 0.05 (-0.05 <= x && x < 0.05)
0.05 ~ 0.15 (0.05 <= x && x < 0.15)
0.15 ~ 0.25 (0.15 <= x && x < 0.25)
0.25 ~ 0.35 (0.25 <= x && x < 0.35)
0.35 ~ 0.45 (0.35 <= x && x < 0.45)
0.45 ~ 0.55 (0.45 <= x && x < 0.55)
0.55 ~ 0.65 (0.55 <= x && x < 0.65)
0.65 ~ 0.75 (0.65 <= x && x < 0.75)
0.75 ~ 0.85 (0.75 <= x && x < 0.85)
0.85 ~ 0.95 (0.85 <= x && x < 0.95)
0.95 ~ (0.95 <= x )
数列の各値を、上記の範囲ごとに振り分けるようなプログラムをお願いします。
[3] 環境
[3.1] OS: Mac
[3.2] コンパイラ名:gcc
[3.3] 言語:C
[4] 期限:[2010年8月10日まで]
[5] その他の制限:なるべく難易度の低いプログラムでお願いします。
0195デフォルトの名無しさん
2010/08/09(月) 22:45:23ttp://codepad.org/yJqUZTR6
0196デフォルトの名無しさん
2010/08/10(火) 01:24:38お前らにくれてやるから、俺が解きたい課題は俺より先に出すなよ、な!
0197デフォルトの名無しさん
2010/08/10(火) 01:27:28だがおまえはコテハンつけて、といてる問題を宣言するんだ
そして少なくとも5分ごとにスレをチェックしろ
最低でもそれを守れ
0198デフォルトの名無しさん
2010/08/10(火) 01:37:05提出すれば良い。その中に自分が習っていないものが入っていたり
題意に沿った回答で無い物を選んでも評価されない。
まぁここはそんな出題者の都合なんて知ったこっちゃ無い場所だがねw
0199デフォルトの名無しさん
2010/08/10(火) 08:22:14http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10913.txt
0200デフォルトの名無しさん
2010/08/10(火) 09:09:540201デフォルトの名無しさん
2010/08/10(火) 09:10:41甘え過ぎ。ただ書き直すだけの作業をやるほどお人好しはいないと思うw
楽しくないからな。
0202194
2010/08/10(火) 16:55:37ありがとうございます。
しかし、実行してみたところ値を分ける条件は21個あるのに結果は20個しかありませんでした。
これを直すにはどうすればよいのでしょうか?
また、あとからになって申し訳ないのですが、条件の書き方を間違えていたので、
修正したものを以下に書いておきます。
~ -0.95 (x <= -0.95)
-0.95 ~ -0.85 (-0.95 < x && x <= -0.85)
-0.85 ~ -0.75 (-0.85 < x && x <= -0.75)
-0.75 ~ -0.65 (-0.75 < x && x <= -0.65)
-0.65 ~ -0.55 (-0.65 < x && x <= -0.55)
-0.55 ~ -0.45 (-0.55 < x && x <= -0.45)
-0.45 ~ -0.35 (-0.45 < x && x <= -0.35)
-0.35 ~ -0.25 (-0.35 < x && x <= -0.25)
-0.25 ~ -0.15 (-0.25 < x && x <= -0.15)
-0.15 ~ -0.05 (-0.15 < x && x <= -0.05)
-0.05 ~ 0.05 (-0.05 < x && x < 0.05)
0.05 ~ 0.15 (0.05 <= x && x < 0.15)
0.15 ~ 0.25 (0.15 <= x && x < 0.25)
0.25 ~ 0.35 (0.25 <= x && x < 0.35)
0.35 ~ 0.45 (0.35 <= x && x < 0.45)
0.45 ~ 0.55 (0.45 <= x && x < 0.55)
0.55 ~ 0.65 (0.55 <= x && x < 0.65)
0.65 ~ 0.75 (0.65 <= x && x < 0.75)
0.75 ~ 0.85 (0.75 <= x && x < 0.85)
0.85 ~ 0.95 (0.85 <= x && x < 0.95)
0.95 ~ (0.95 <= x )
(−領域の<,<=が逆になったのと-0.5~0.5の部分が両方とも<になりました。)
申し訳ないですが、以上の内容で再度お願いします。
0203デフォルトの名無しさん
2010/08/10(火) 22:04:09ttp://codepad.org/zG6XgLPj
0204デフォルトの名無しさん
2010/08/10(火) 22:55:070205デフォルトの名無しさん
2010/08/10(火) 23:40:300206デフォルトの名無しさん
2010/08/11(水) 01:39:20http://codepad.org/8lMNCDEZ
0207デフォルトの名無しさん
2010/08/11(水) 20:24:01やっぱりひとつたりない。codepad の出力をみてください。
0209デフォルトの名無しさん
2010/08/11(水) 20:32:29具体的に、どこの範囲が足りていないのでしょうか。
こちらの環境では私の書いた>>203は足りています。
足りないのは>>206の方です。
それと、>>203はcodepadでは結果が出力されていません。
あなたの見間違いです。
0210206
2010/08/11(水) 22:13:31すまん、clangでやっていた。
#include <stdio.h>
int main(int argc, char *argv[])
{
double max = 1.05;
double min = -1.05;
double delta = 0.1;
double x;
printf("(max - min) / delta) = %f\n", (max - min) / delta);
printf("(int) ((max - min) / delta)) = %d\n", (int) ((max - min) / delta));
printf("(int) (x=((max - min) / delta))) = %d\n", (int) (x = ((max - min) / delta)));
return 0;
}
# gcc : 21.00000 20 21
# g++ : 21.00000 20 21
# clang : 21.00000 21 21
0211デフォルトの名無しさん
2010/08/12(木) 04:26:210212デフォルトの名無しさん
2010/08/12(木) 08:22:28んー、コンパイラによって結果がかわるのはどうして?
bcc32
(max - min) / delta) = 21.000000
(int) ((max - min) / delta)) = 20
(int) (x=((max - min) / delta))) = 20
lsi-c
(max - min) / delta) = 21.000000
(int) ((max - min) / delta)) = 20
(int) (x=((max - min) / delta))) = 20
msvc 2008
(max - min) / delta) = 21.000000
(int) ((max - min) / delta)) = 21
(int) (x=((max - min) / delta))) = 21
0213デフォルトの名無しさん
2010/08/12(木) 09:24:48そもそも 1.05 を double の変数に代入した時点で、
丸めが起きて 1.05 では無くなってるんだよ。
こういう誤差が演算の過程でどのように変化するかはC言語の規定外。
誤差の範囲で値が変わるのは問題ない。
こういうふらつきのある値を int に強制的にキャストして、
小数点以下を切り捨てるようなコードに問題がある。
はっきり言ってバグ。コードを修正すべき。
0214デフォルトの名無しさん
2010/08/12(木) 10:08:06ンな事言ってたらCで小数の比較なんてナンセンスじゃん
数値計算にC使うなってな話になんぞ?
0215デフォルトの名無しさん
2010/08/12(木) 10:10:13笑
0216デフォルトの名無しさん
2010/08/12(木) 10:20:35int intvalue;
d=(double) intvalue;
はおk
しかし
intvalue=(int)d;
という書き方する人一杯いるけど、このキャストは
しないほうが良い。上のように処理系依存性が増える。
だからといって処理系のライブラリ関数(round,floor,etc)を
使えというわけじゃないが、ライブラリは同一環境なら処理系間で使
い回せる可能性が若干ある。ソースがあれば完璧
0217デフォルトの名無しさん
2010/08/12(木) 10:20:37a = 0.04999999 みたいな数字があって
0.5 が誤差のために実質 0.04999999 だったら
a < 0.5 が true にならないってことですよね?
0218デフォルトの名無しさん
2010/08/12(木) 10:24:12それは起こりえる。そしてFORTRANだろうがCだろうがJavaだろうが
言語によらず浮動小数点実数を使う限り宿命的に発生する。
BCD実数とか使うしかない。
0219デフォルトの名無しさん
2010/08/12(木) 10:33:20無効数字部分をどのように取り扱うかは確か定義され
ていない筈。これが丸め誤差とか桁落ちとかの原因
ライブラリ(処理系組み込みを含む)作成者の裁量が
大きく左右する。
0220デフォルトの名無しさん
2010/08/12(木) 10:36:01ソースあげろよ
0221デフォルトの名無しさん
2010/08/12(木) 10:56:56という条件からは浮動小数点誤差回避の技法はスレ違い
0222デフォルトの名無しさん
2010/08/12(木) 11:02:24× スレ違い
○ 私は無能です
0223デフォルトの名無しさん
2010/08/12(木) 11:04:03>ライブラリは同一環境なら処理系間で使
>い回せる可能性が若干ある。ソースがあれば完璧
ソースがあっても、そもそもからして浮動小数点実数
の内部型は処理系の裁量じゃね?別にIEEEに準拠する
必要まで強制されてるの?ライブラリのソースなど
そういった内部型の構造に強く依存してたり関連ライ
ブラリグローバル関数とか使ってたりして競合が発生
しやすいんであったところでそのまま使えるケースは
稀
0224デフォルトの名無しさん
2010/08/12(木) 11:05:51できるもんなら関わりたくないものだ。
0225デフォルトの名無しさん
2010/08/12(木) 11:16:001 printf("(max - min) / delta) = %f\n", (max - min) / delta);
2 printf("(int) ((max - min) / delta)) = %d\n", (int) ((max - min) / delta));
3 printf("(int) (x=((max - min) / delta))) = %d\n", (int) (x = ((max - min) / delta)));
2と3が異なるgccが手元に無いんだが、どういう素姓のgccだ?
本当に2と3が異なるのか?
0226デフォルトの名無しさん
2010/08/12(木) 13:13:04sizeof float==sizeof intな環境で
float f=1.0;
int i;
i=(int)f;
while(i==1);
このコードを実行させたところ一瞬で終わる環境も
あり得るし、無限ループになる環境もあるってこと
ですね。勉強になりました。(皮肉)
0227デフォルトの名無しさん
2010/08/12(木) 13:25:180228デフォルトの名無しさん
2010/08/12(木) 13:30:070229デフォルトの名無しさん
2010/08/12(木) 13:34:17とする。
long long l;
double d;
d=1.0;
l=(long long)d;
は
memcpy(&l,&d,sizeof(long long));
と等価じゃないんだ?
0230デフォルトの名無しさん
2010/08/12(木) 13:38:33キャストにsize関係ないし、1.0に誤差が発生する環境なんてない。
0231デフォルトの名無しさん
2010/08/12(木) 13:41:40Dynamic Castという概念が生まれ区別されるようになった
わけです。Cでもこれは真似したほうがいいかもしれません。
つまりキャストする場合はコメントにそう明示するわけです。
処理系を変えておかしくなる場合はこのあたりに原因がある
ことも少なく有りません。改修作業の苦痛が大幅に軽減され
ます。
0232デフォルトの名無しさん
2010/08/12(木) 13:45:03当たり前だろ。バカ。お前はバトルへの参加資格なし。
0233デフォルトの名無しさん
2010/08/12(木) 13:47:20処理系によって変わります。(但しその処理系の正統性は無視です。
正統な処理系だけが稼働しているわけではありません。)
0234デフォルトの名無しさん
2010/08/12(木) 14:57:55のようにバイト列レベルで見て単純な複製じゃなく
コンパイラが何らかの方法で変換ルーチン(ライブラリ関数
じゃない可能性のほうが大)を自動コールするといったレベ
ルのキャスト(これが正統)を禁止するのはちょっとね。
ただライブラリ関数のコンバート系関数でも同等のことが
出来るし、ライブラリ関数を多用する場合はむしろこちら
のほうが純正性が良いかもしれない
0235デフォルトの名無しさん
2010/08/12(木) 16:23:25処理系依存性が出るはずが無い。
C99
6.3.1.4 Real floating and integer
When a finite value of real floating type is converted to an integer type
other than _Bool, the fractional part is discarded (i.e., the value is
truncated toward zero).
0236デフォルトの名無しさん
2010/08/12(木) 17:04:10Windowsでは cygwin / gcc 4.3.4.20090804
0237デフォルトの名無しさん
2010/08/12(木) 18:06:54トータルな意味での信頼性:正統>>>>純正
ってところか どんな分野でもこれはある程度言えるんじゃ?
0238デフォルトの名無しさん
2010/08/12(木) 18:15:19お前が馬鹿だろ、整数へのキャストは小数部の切り捨てしか起こらん。
問題はその前の代入や演算での丸めによる誤差の取り扱いなんだよ。
要するに演算後 21.000... となる処理系と 20.999... となる処理系が存在しうる。
これを整数にキャストしたら前者では 21 となるし、後者では 20 となる。
まともなプログラマなら演算後の double を int にキャストする場合は
i = (int)(d + .000000001) とか書くよ。
0239デフォルトの名無しさん
2010/08/12(木) 18:30:49>>238こういうのはバッドノウハウだよな
速度が求められるとか特別な理由が無い限りやめたほうがいい
0240デフォルトの名無しさん
2010/08/12(木) 18:33:520241デフォルトの名無しさん
2010/08/12(木) 18:41:12>i = (int)(d + .000000001) とか書くよ。
死ね
0242デフォルトの名無しさん
2010/08/12(木) 18:43:240243デフォルトの名無しさん
2010/08/12(木) 18:46:07純正な有名ライブラリのソース(マルチプラットフォーム対応)を
沢山見てきたが、エレガントに記述されているものなど皆無。
むしろすんごく泥臭いことやってる。パッチだらけで作者じゃな
ければ読めたものじゃないってことも稀じゃない。
正統(某かの規格書に厳密に準拠した文法で書かれており、使うこと
だけでなく見せることも目的に入ってる)志向が強いコードのほうが
強烈にエレガントさを求めるんじゃねぇの?
0244デフォルトの名無しさん
2010/08/12(木) 19:53:30そんな話はしていない、文脈読めないバカは死んでしまえ。
キャストかライブラリかと言う話だ。
0245デフォルトの名無しさん
2010/08/12(木) 20:25:04こういうことしちゃう人がいるから嫌なんだよな。
あー少数のない世界へ行きたい。
0246デフォルトの名無しさん
2010/08/12(木) 20:31:400247デフォルトの名無しさん
2010/08/12(木) 21:22:41コンパイラの解釈に依存するようなキャストを使わず
自前でコンバート関数とか用意するだろうし、それを
使って他のライブラリ関数とかテストしてるんだろうから
ライブラリ関数を中心的に使う場合は、可読性は低くなるかも
知れないけどあんましキャストはしないほうがいいと思います。
0248デフォルトの名無しさん
2010/08/13(金) 01:17:21キャストがコンパイラの解釈に依存するから使えないのならば、同じく、
四則演算子も使えねーな。
浮動小数点定数も変換が処理系に依存するから、使えねーな。ww
0249デフォルトの名無しさん
2010/08/13(金) 01:36:15平気でリンクできてしまうのがよくもわるくもC処理系
の特徴であり歴史的事実(それがC固有であり本源的とまで
は言わないが)
厳格に言えば整数演算、文字列演算以外のキャストや
四則演算はこういった性格から信頼性が落ちる場合が
あるってことか。
0250デフォルトの名無しさん
2010/08/13(金) 02:48:29[1]
[2]
グラフG(V,E)の各エッジに0〜1.0間の数値で確率がランダムで与えられている。
各ノードに到達するまでの確率の積が最大となるような木を作りたい。
別の表現をすると、一般的なダイクストラ法の条件1.リンクコストが非負、2.コストの和が最小の経路を求める
というのを、1'.リンクコストは0〜1の実数、2'.コストの積が最大の経路を求める
に変えて考えたいです。
ダイクストラのアルゴリズムをちょこっと変えるだけで、この問題を解くアルゴリズムは書けますか?
[3] 指定なし
[4] できるだけ早く
[5] コードじゃなくてアルゴリズムがほしいです
0251デフォルトの名無しさん
2010/08/13(金) 02:57:550252デフォルトの名無しさん
2010/08/13(金) 04:12:50数学遺体毛
■ このスレッドは過去ログ倉庫に格納されています