アカウント名:
パスワード:
cout << "num of solution: " << sum << endl;
出力してるの、解の数だけじゃ?
元記事に
『魔方陣の世界』ではこの問題のためのコードも紹介されていますが、並列化されていないこともあって、解の数え上げで約5000秒(確認済み)、解の列挙で約3日(未確認)と、あまりふるいません
と、解の数え上げ(元記事の『10分で解けた』と主張する「C++のコード」で実際にやっていること)と、高校生がスパコンで解いた2時間36分のコード(解の列挙)では、同じコードでは50倍の時間差があることを元記事自体が示している。
(たぶん、出力をハード(RAMもしくはSDD/HDD)上に書き出すという、アルゴリズムとは無関係なところのボトルネックが原因だろうが)
int t = omp_get_thread_num(); ++counts[t]; *files[t] << (char)x1 << (char)x2 << (char)x3 << (char)x4 << (char)x5 << (char)x6 << (char)x7 << (char)x8 << (char)x9 << (char)x10 << (char)x11 << (char)x12 << (char)x13 << (char)x14 << (char)x15 << (char)x16 << (char)x17 << (char)x18 << (char)x19 << (char)x20 << (char)x21 << (char)x22 << (char)x23 << (char)x24 << (char)x25;
という記述があるから、全解を書き出していると思うのですが、ちがうのでしょうか? 『魔方陣の世界』に記載されているアルゴリズムだと数え上げと全解の書き出しでそんなでしたと比較している文面だと思いましたが・・・
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ナニゲにアレゲなのは、ナニゲなアレゲ -- アレゲ研究家
解の数数えるのと、全解を書き出すのとでは時間が違って当然 (スコア:0)
出力してるの、解の数だけじゃ?
元記事に
『魔方陣の世界』ではこの問題のためのコードも紹介されていますが、並列化されていないこともあって、解の数え上げで約5000秒(確認済み)、解の列挙で約3日(未確認)と、あまりふるいません
と、解の数え上げ(元記事の『10分で解けた』と主張する「C++のコード」で実際にやっていること)と、高校生がスパコンで解いた2時間36分のコード(解の列挙)では、
同じコードでは50倍の時間差があることを元記事自体が示している。
(たぶん、出力をハード(RAMもしくはSDD/HDD)上に書き出すという、アルゴリズムとは無関係なところのボトルネックが原因だろうが)
Re:解の数数えるのと、全解を書き出すのとでは時間が違って当然 (スコア:0)
という記述があるから、全解を書き出していると思うのですが、ちがうのでしょうか? 『魔方陣の世界』に記載されているアルゴリズムだと数え上げと全解の書き出しでそんなでしたと比較している文面だと思いましたが・・・