集合論id:witchmakersと集合位相の勉強会をやっているわけですが、直積とかべき集合とか毎回書き出すのは面倒です。人間のやるべきことではありません。いうわけで、自分用の集合を生成する関数をRで書いたりしました。直積こんな感じで直積を書き出せるようなのを書いてみました。"{(1,4),(2,4),(3,4),(1,5),(2,5),(3,5),(1,6),(2,6),(3,6)}"関数定義はこんなの。expand.gridのおかげで簡単。return(paste("{",paste(m,collapse=","),"}",sep=""))}直積を引数にするような関数とかはこんな感じで書けますね。冪集合を生成するようなコードは昔この辺に書いたりしました。blogが、もっと簡単にできるはず。いうことで書きました。combn関数とかapplyとかがあるから楽すぎた。c(NA,unlist(lapply(seq(length(list)),function(x){apply(combn(list,x),2,function(y){y})}),recursive=FALSE))}とりあえず、こんなことができる。"c"これだと見ずらいので、lapplyを使えば大丈夫。"c"これを集合っぽく書きたいよね!!ということで書きました。いうかskypeとかで簡単にはれるから(ry。gsub("NA","",paste("{",gsub("\\}\\{","\\},\\{",write.list.intern(list)),"}",sep=""))}これでおk。"{{},{a},{b},{c},{d},{a,b},{a,c},{a,d},{b,c},{b,d},{c,d},{a,b,c},{a,b,d},{a,c,d},{b,c,d},{a,b,c,d}}"その他もうちょち書いたんだけど、この辺に書きすてておく。methodをRで実装した最適化理論の課題提出期限が過ぎたと思うので、うpします。いうことで、資料を置いておきます。(1)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。