>>732
その位相空間というのを調べたら冪集合の冪集合のうち 全体と空集合を含み
各要素の和も積も所属していることらしいのでRustで作ってみました
fn 和集合(集合_x: usize, 集合_y: usize) -> usize { 集合_x | 集合_y }
fn 積集合(集合_x: usize, 集合_y: usize) -> usize { 集合_x & 集合_y }
fn 空集合(_size: usize) -> usize { 0 }
fn 全体集合(size: usize) -> usize { 冪(size) - 1 }
fn 冪(size: usize) -> usize { 1 << size }
fn 所属(集合: usize, 要素: usize) -> bool { 集合 & (1 << 要素) != 0 }
fn 一覧(size: usize) -> impl Iterator<Item=usize> { 0..size }
fn 要素一覧(集合: usize, size: usize) -> impl Iterator<Item=usize> {
一覧(size).filter(move |&要素| 所属(集合, 要素))
}
fn main() {
let input = ['a', 'b', 'c'];
let n = input.len();
一覧(冪(冪(n)))
.filter(|&s|
所属(s, 全体集合(n)) && 所属(s, 空集合(n)) &&
要素一覧(s, 冪(n)).all(|x|
要素一覧(s, 冪(n)).all(|y|
所属(s, 積集合(x, y)) && 所属(s, 和集合(x, y)))))
.for_each(|s| println!("{}", 要素一覧(s, 冪(n))
.format_with(",", |s, f| f(&format_args!("{{{}}}", 要素一覧(s, n)
.format_with(",", |index, f| f(&format_args!("{}", input[index]))))))));
}
これで{},{a,b,c} から {},{a},{b},{a,b},{c},{a,c},{b,c},{a,b,c} まで29個の位相が算出されました
入力を4つ ['a', 'b', 'c', 'd'] にすると355個の位相が算出されました
これで合っていますでしょうか?
C vs C++ vs Rust Part.3
■ このスレッドは過去ログ倉庫に格納されています
743デフォルトの名無しさん
2022/03/24(木) 21:58:37.46ID:XlqSDiYA■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★5 [ぐれ★]
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【速報】気象庁がマグニチュード7.5に修正しました [ニョキニョキ★]
- 高市内閣「支持」64%「不支持」19% NHK世論調査 ★2 [少考さん★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 中国「日本は戦後80年経っても過去の加害行為を反省してない」 [805596214]
- かっぱ寿司←こいつが天下取れなかった理由
- 何でデートでリュック背負って来たらダメなの?
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- 巨大地震 [957955821]
- 🖐( -᷄,ὢ)知らないんで……
