2012-05-22 25 views
5

N olmayan ayrık kümeler halinde düzenlenmiş bir öğeler evrenim var. Sendika/kavşak/fark operatörleri kullanarak bu kümeler kullanılarak inşa edilmiş ifadelerim var. Yani bir eleman verildiğinde, "türetilmiş" kümelerden hangisinin elementi içerdiğini bulmak için bu m ifadelerini değerlendirmem gerekiyor. Ben "türetilmiş" kümesini hesaplamak istemiyorum çünkü çok zaman ve alan verimsiz olacak. Bir elemanın sadece ifadesine bakarak türetilmiş kümelerden birinde bulunup bulunmayacağını söylemenin bir yolu var mı? Örneğin eğer ifade C = A U B ise ve eleman A kümesinde ise, o zaman C kümesinde yer alacağını söyleyebilirim. Bu doğada hesaplamaları gerçekleştirmek için herhangi bir C kütüphanesi var mı? im yanlış değilse, e, sette yanlışsa onun değilseKüme ifadelerini değerlendirme

cevap

4

, let e = eleman

gerçek her set A, B değiştirin. Ardından, set operatörlerini mantıksal eşdeğerlerine dönüştürün ve ifadeyi boole olarak değerlendirin. Her şey, boolean operatörlerine, hatta xor'a ve nesneye iyi bir şekilde eşleşmelidir.

örneğin, hızlı bir eleman varsa bulabilirseniz

C = (true or true) xor false 
->  (true)  xor false 
-> true 

oldukça hızlı olması ihtimali nedeniyle

C = (A U B) xor D 

o C olurdu D değil E hem AB içinde, ancak eğer bir

+0

setinde, şu anda bu şeyleri hatırlıyorum. 'A - B' doğruysa ve sadece A doğruysa ve B yanlışsa doğrudur. – goat

+0

Bu oldukça mükemmel bir çözüm, teşekkürler! Zaten bir elementler ve ait oldukları kümelerim var, bu yüzden hesaplama hızlı olmalı. – Oceanic