1 名前:デフォルトの名無しさん mailto:sage [2022/01/27(木) 22:19:47.56 ID:avZQ9Wm7.net] 闘え ※前スレ C++ vs Rust https://mevius.5ch.net/test/read.cgi/tech/1619219089/ C vs C++ vs Rust Part.2 https://mevius.5ch.net/test/read.cgi/tech/1639539350/
792 名前:デフォルトの名無しさん mailto:sage [2022/03/26(土) 12:25:46.50 ID:ShQHM1dQ.net] お互い相手にしてもらえるやつがいて良かったね 隔離スレ立てたやつに感謝
793 名前:デフォルトの名無しさん mailto:sage [2022/03/26(土) 23:51:11.15 ID:/7nLRmyg.net] >>749 組み合わせ集合の意味が不明だが['a', 'b', 'c']に対して冪集合の冪集合ことか? >>743 のコードの関数呼び出し部分を展開すると 「一覧(冪(冪(n)))」は「(0..(1 << (1 << n)))」 つまり冪集合の冪集合を0から255(=2^(2^3)-1)までの数値でbit表現していることになる 集合の表記でこれ以上は簡単にならないし応用も一番広く効くのではないか あとは素直に位相を満たす条件でフィルタしてるだけだな | .filter(|&s| | 所属(s, 全体集合(n)) && //これは必須条件 | 所属(s, 空集合(n)) && //これも必須条件 | 要素一覧(s, 冪(n)).all(|x| | 要素一覧(s, 冪(n)).all(|y| | 所属(s, 積集合(x, y)) && //任意のintersectionも要素となる必須条件 | 所属(s, 和集合(x, y)) //任意のunionも要素も要素となる必須条件 | ))) 全てがビット演算のみで済んでいるようだから どの言語で書いてもこれ以上はシンプルかつ高速にならないと思われる
794 名前:デフォルトの名無しさん mailto:sage [2022/03/27(日) 00:20:42.47 ID:PoGWmBV8.net] また本人が自画自賛し始めたw この手の処理はbit演算では書かないよw 自分で調べてみればいいw 競プロマニア君が速いコード書けないのに頑張ったって言ってもらいたいらしいw
795 名前:デフォルトの名無しさん mailto:sage [2022/03/27(日) 00:33:18.39 ID:BBGNEHmu.net] >>783 べき集合ならbit表現が最も自然で効率的なんじゃない? 他に効率的な表現あるの?
796 名前:デフォルトの名無しさん mailto:sage [2022/03/27(日) 01:17:15.21 ID:PoGWmBV8.net] それにしか使えないから書かないんだよw