【◆QZaw55cn4c 隔離】C/C++の問題を片付けます
Xlib
binary
yacc
copy and paste
execlp
PdhCalculateCounterFromRawValue
IIDENTITYAUTHORITY_DOES_TEXTUAL_DEFINITION_MATCH_TEXTUAL_REFERENCE_FLAG_EXACT_MATCH_REQUIRED
>>437 これが覚えられない人は代わりに 1 とタイプしましょう。
>>436 you lose. あまりにも一般的では有りません、先頭の pdh は邪道です
>>437 you lose. ちゃんと e から初めて下さい
exit(笑い)
tty
yes
そんなコマンド有るんだ、知らんかったよ
stty とかいうともう苦しいだろうから y は止めようぜ
setlocale
erl
dc
[91PlqP93P[dsqx]P10P]dsqx
脊髄反射で cd
dir
recursive
お前がのっかるのかよw
environment variable
expanded memory specification
negotiation
本来のスレ目的から外れたシリトリは荒らしだろw
NetBSD
Dvorak
Kernel
less
screen
QZaw氏。
宿題スレにあまり同じ問題での連投は、
他の宿題の阻害になりそうなんでこっちに書きます。
まず私の
>>427 http://codepad.org/MZixv48O ですが、 68 行目の AllLen[depth] += Len(Start,i); を生かさないと、
QZaw氏のものと同じ結果になりません。
このの行を生かすと"ほぼ"同じ結果となります。
私の環境で実行した結果はそれぞれ下記でした(%.20fで表示)。
Min : 328.27898198604385000000
Min : 328.27898198604390000000
ルート表示に対応したものは下記に貼りました。
http://codepad.org/TobUe0sK ルートはQZaw氏のものと合いませんでした。
ルートを強引に各々のものにセットして確認しましたが、
俺の環境では一応俺のほうの奴がちょっと近いみたいですw
64ビットdoubleのほぼ限界辺りでの誤差ですから、
ちょっとした計算の順序の違いによる誤差ではないでしょうか?
シード値によってはQZaw氏のほうが近くなるかもしれません。
>>462 ご配慮感謝。値が一致することを確認しました。
それにしても爆速ですね。(4252ms vs 12678ms)
私のものは、最小を超えたときの計算は打ち切ってはいても、経路そのものはすべて生成してしまう(順列で生成しています)ので、
その分遅くなっていると考えています。
>>463 貼ったものにバグありました。下記です。
77行目 Root[depth+1] = i;
>>463 経路表示つきも確認しました。こちらの rand() では経路も一致しました(無論最小値も)。
(経路表示の一番最後の要素がサチってしまっていますが一致することはわかります。)
こちらではこんな感じです。
seed : 31415926
0 x:61.700000000000003 , y: 1.900000000000000
1 x:76.400000000000006 , y:77.099999999999994
2 x: 0.500000000000000 , y:64.299999999999997
3 x:92.599999999999994 , y:63.000000000000000
4 x:40.000000000000000 , y:42.100000000000001
5 x:89.799999999999997 , y: 1.100000000000000
6 x:12.900000000000000 , y:91.700000000000003
7 x:29.500000000000000 , y:91.700000000000003
8 x:37.100000000000001 , y: 3.800000000000000
9 x:39.000000000000000 , y:62.000000000000000
10 x:19.500000000000000 , y:55.000000000000000
11 x:24.899999999999999 , y:59.000000000000000
Min : 332.64431086893358724410
Count : 4252
iTime : 4416 ms
Root : 0 5 3 1 7 6 2 10 11 9 4 1
0:(61.7, 1.9)
1:(76.4, 77.1)
2:( 0.5, 64.3)
3:(92.6, 63.0)
略
9:(39.0, 62.0)
10:(19.5, 55.0)
11:(24.9, 59.0)
(0)(5)(3)(1)(7)(6)(2)(10)(11)(9)(4)(8)
min = 332.64
time: 12658.000
>>430氏の、sqrtを最後だけ実行する。
http://hibari.2ch.net/test/read.cgi/tech/1291471791/430 これもやったんですが、これもメチャクチャ速くなりましたね。
ただ、またdoubleの精度の問題でroot変わるんですが・・・
rootに関しては、こっちの方(sqrtを最後だけ実行する版)がより正確なんじゃないかなと思ってます。
下記のコード試したら、sqrtしないほうがより長く正確な値を出していたと言う、弱い理由からですが。
double a,b;
int i;
for (i=0,a=1 ; a>0 ; i++,a/=2) {
b = a/2;
printf ( "%4d Sq:%d sqrt:%d %.20e %.20e\n"
, i
, Sq(a)>Sq(b)
, sqrt(Sq(a))>sqrt(Sq(b))
, a,b
);
}
Pen III 500MHz を2003年の夏まで使用していましたが
今はC2D、C2Qのを使用してますです!
Core iシリーズはVistaのごとくスルーしてます ><;
472 :
413:2010/12/14(火) 21:32:39
ここに答えを貼られても見ませんので
>>467 これのことです。もうどうでもいいかもしれませんが・・・(&すでに分かってることと思いますが)
> sqrtを最後だけ実行
便所でふと思ったんですが、これダメですね。
距離 a+b と c+d の比較が
a+b > c+d
である時、必ず下記が成り立たなければ
>>467 のアルゴリズムは成立しません。
a^2+b^2 > c^2+d^2
これには反例があります。例として a=b=7,c=10,d=1 などです。
現実の図形でも四角形以上ならありそうです。
おちんちん気持ちいいお(´;ω;`)ブワッ