我正在研究算法,但有一個關於選擇器的註釋。我不確定這是什麼意思,但我正在研究的論文說:如何對選擇器進行編碼?
δ()是一個選擇器,即如果x> 0則δ(x)= 1,否則 δ(x)= 0;
如何使用僞代碼,C++或Java對此進行編碼? 由於
我正在研究算法,但有一個關於選擇器的註釋。我不確定這是什麼意思,但我正在研究的論文說:如何對選擇器進行編碼?
δ()是一個選擇器,即如果x> 0則δ(x)= 1,否則 δ(x)= 0;
如何使用僞代碼,C++或Java對此進行編碼? 由於
δ()是一個選擇器,即,δ(X)= 1,如果x> 0,否則δ(X)= 0
你只需要一個if
在僞代碼:
delta = function(x)
{
if (x > 0)
return 1
else
return 0
}
謝謝尼科。我只想要一個簡單的答案,而不是人們攻擊我的新東西。 –
這是一個函數 通以x 檢查如果x> 0 如果是,返回1 否則 返回0
template <class T>
int selector(T x)
{
return x > 0 ? 1 : 0;
}
您可以簡化爲'return x> 0;' – fredoverflow
是的,但在我看來,最好避免不必要的類型轉換。一些額外的字符不會傷害:) – RocketR
甲選擇在該上下文中是一個簡單的布爾函數返回0(或1)的所有值x達到一定點,然後返回1(或0)之後。換句話說,兩步step function。
BTW,鑑於三角洲的問題的具體定義,增量是與一個0值離散Heaviside Step Function x = 0的
這是Heaviside功能,而不是Heavyside功能。這個名字似乎是描述性的,但是這個函數是以喬治海維賽德的名字命名的,而不是這個函數在一邊是「沉重的」。順便說一句,調用這個函數δ就太可怕了;稱它爲選擇器同樣糟糕。 Heaviside函數是H(x)(duh)並且是delta分佈的積分。 δ分佈是一個選擇器,但它不是一個函數。 –
這是Oliver Heaviside,而不是George。 –
@David:感謝您指出重磅與G. Heaviside的珍聞。所有這些年來,我認爲這是後來的形象,而不是一個人後的名字。順便說一句,維基百科提到奧利弗而不是喬治。此外,完全同意,三角洲是它的名字很差; '可能只是在問題中提到的論文使用了更合適的西格瑪,但是給定字體/代碼頁很難閱讀。 – mjv
如果你不想,如果要使用,你可以寫(在C#):
Math.Ceiling(Math.Sign(X)* 0.1)
在Java中,應該是這樣的:
Math.ceiling(Math.signum(X)* 0.1 )
你可以給我們一個研究論文的鏈接,或者給我們一個關於你正在工作的算法的描述,所以我們可以理解δ是如何在上下文中使用的? –
雖然問題 –