2009-08-31 84 views
0

如果有任何開源代碼已經做到這一點,我有興趣聽到它。但我還沒有看到它,所以我試圖推出自己的。比較/相交比較標準

例子:

variable x = compareCriteriaBetween 3 and 6 
variable y = compareCriteriaLesserThanOrEqual 5 

困難的部分,我是找到一種優雅的方式來比較compareCriteria並創建一個交集。在這個例子中,兩者之間的交集是'在3到5之間'。

我該如何以「告訴別人不問」的方式來實現這一點?請注意,compareCriteria可以完全不相關(例如startsWithLetter與betweenNumber)。

+0

你將不得不縮小一點關於你正在談論的比較標準和領域:在一般情況下,你會遇到數學上不可判斷的語句。 – 2009-08-31 12:06:00

+0

你能舉一個這樣的不可判定的陳述嗎? – koen 2009-08-31 12:21:13

回答

1

如果你只有表達式中的常量,你應該從undecidability(我想!)安全。一旦你可以表達例如問題就會出現有關整數的一般陳述用+ - * /(見Peano arithmetic)。 (x)和Q(x)並且計算等價於P(x)的語句R(x)Q(x(x))的算法不存在可判定性的範圍, ),其中x的範圍可以超過任何域(整數,字符串,矩陣,實數,複數,邏輯語句[哎呀,回到不可判定的領域!],...)。你需要特定領域的技巧才能到達那裏,並且嚴格限定其中P,Q和R被制定的languages。有某些域的軟件產品 - 其中之一被稱爲Mathematica ...

嘗試回到基礎:你想解決什麼問題?

1

如果你在簡單的標準等對整數/浮點數小於等於之間只是興趣,可以重寫和6(大於等於3小於等於6之間3 )。如果與一個邏輯少等於5可以使用布爾代數,得到結合本(大於等於3小於等於6小於等於5))簡化前內括號只是不等於5並重寫結果爲3和5之間