[問題] 關於排容原理已回收

看板MATLAB作者 (想到再說...)時間15年前 (2010/11/23 18:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
想請教一下各位高手一些問題 因為小弟的研究裡有需要用到,算機率聯集的值 並不是兩個矩陣的那種聯集,所以並不是 "union([A] [B])" 是例如有三個機率 P1、P2、P3 (國中數學畫三個圈圈表示那種) 所以聯集 U(P1 P2 P3)=P1+P2+P3-(P1*P2+P2*P3+P1*P3)+P1*P2*P3 聯集基本上是使用排容原理去算的 小弟有利用排容原理寫出一個program如下是沒問題的 但太大維度根本無法運算,用for去改時間也會過於冗長 請問有無 指令 or 方法 可以改進? (我需要 N=200) Q = rand(1,N); [K,N] = size(Q); P_sum = 0; for n=1:N A = nchoosek(Q,n); for m = 1:(prod(1:N)/(prod(1:n)*prod(1:(N-n)))) P = (-1)^(n-1)*prod(A(m,:)); P_sum = P_sum + P; end end 小弟不才,想破頭還是想不到= = 麻煩各位高手撥冗回答了!THX -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.22.21.135
文章代碼(AID): #1Cwv3aKC (MATLAB)