嚴格弱序
是二元謂詞bool = f(x,y)的特性。
如果對於f(x,y),總是有以下三個條件滿足:
1)非自反性
f(x,x) == false
2) 非對稱性
f(x,y) == !f(y,x)
3) 傳遞性
若f(x,y)==true , f(y,z)==true; 則f(x,z)==true
我們稱f(x,y)這個謂詞是嚴格弱序的。
我們考察c++的操作符 < 。這個操作符有左右兩個運算元,可以認為是乙個二元謂詞。
1<1 == false
1<2 == !(2<1)
若1<2, 2<3;則1<3
可見,《是嚴格弱序的
我們再考察c++的操作符 <= 。
1<=1 == true 違反性質1
1<=2 == 2<=1 違反性質2
可見,<= 不是嚴格弱序的
考察 大於運算子》,它是嚴格弱序的。
嚴格弱序的用途:
若 f(x,y)==true, 則x在y的"前面"
若 f(y,x)==true, 則x在y的"後面"
若 !f(x,y) && !f(y,x), 則x,y等價。或者x,y並列。
若 !f(x,y)==true, 則x在y的"後面"或者x,y並列。
若 !f(y,x)==true, 則x在y的"前面"或者x,y並列。
乙個f(x,y)謂詞能表達所有可能的前後關係計算方法。
stl容器和演算法(例如map容器的key,sort演算法的比較器。),需要用到比較器時,是假設了比較器是滿足嚴格弱序的。
如果違反,則行為未定義(程式crash,破壞行為)。
int a=;
std::sort(a,a+13,std::less_equal());
在vsdebug模式下,報錯。原因是std::less_equal()違反嚴格弱序
嚴格劣勢策略和弱劣勢策略
link 1,嚴格劣勢策略與弱劣勢策略 嚴格劣勢策略的定義是什麼?弱劣勢策略的定義是什麼?請用乙個包含兩個人參與的博弈矩陣來舉例說明,要求其中乙個參與者有三個策略且三者之一為嚴格劣勢策略,另乙個參與者有三個策略但三者之一為弱劣勢策略,請指出你所舉例子中的劣勢策略。2,迭代剔除 弱 劣勢策略 請看下面...
再理解敏捷
2009年1月24日 2008年春,專案做的對敏捷有了點興趣,花了兩個晚上瀏覽了 敏捷迭代開發 管理者指南 理念式的書,看起來比較輕鬆,摘錄一些自己的體會。有些需求在開始的時候是提不出來的,或者說沒法細化的,強行的過渡需求分析是浪費時間的行為,到後來多半還是要改。瀑布 其實royce大大提出的瀑布模...
遞迴再理解
其實關於遞迴,我也是比較模糊的,至今能理解和能用的遞迴演算法,基本是靠記憶和經驗,要是讓我自己設計乙個遞迴,估計又得難半天,很早都想總結一下,喜歡瀏覽技術網 站,總是能找到好東西,現在將遞迴演算法總結如下,也不是多麼深刻,多麼高大上,可以說還是拙見吧 定義遞迴演算法 基本思想 那麼什麼是遞迴演算法呢...