2011-07-12 47 views
-1

我正在研究算法,但有一個關於選擇器的註釋。我不確定這是什麼意思,但我正在研究的論文說:如何對選擇器進行編碼?

δ()是一個選擇器,即如果x> 0則δ(x)= 1,否則 δ(x)= 0;

如何使用僞代碼,C++或Java對此進行編碼? 由於

+0

你可以給我們一個研究論文的鏈接,或者給我們一個關於你正在工作的算法的描述,所以我們可以理解δ是如何在上下文中使用的? –

+0

雖然問題 –

回答

4

δ()是一個選擇器,即,δ(X)= 1,如果x> 0,否則δ(X)= 0

你只需要一個if

在僞代碼:

delta = function(x) 
     { 
     if (x > 0) 
      return 1 
     else 
      return 0 
     } 
+1

謝謝尼科。我只想要一個簡單的答案,而不是人們攻擊我的新東西。 –

1

這是一個函數 通以x 檢查如果x> 0 如果是,返回1 否則 返回0

1
template <class T> 
int selector(T x) 
{ 
    return x > 0 ? 1 : 0; 
} 
+0

您可以簡化爲'return x> 0;' – fredoverflow

+0

是的,但在我看來,最好避免不必要的類型轉換。一些額外的字符不會傷害:) – RocketR

1

選擇在該上下文中是一個簡單的布爾函數返回0(或1)的所有值x達到一定點,然後返回1(或0)之後。換句話說,兩步step function

BTW,鑑於三角洲的問題的具體定義,增量是與一個0值離散Heaviside Step Function x = 0的

+1

這是Heaviside功能,而不是Heavyside功能。這個名字似乎是描述性的,但是這個函數是以喬治海維賽德的名字命名的,而不是這個函數在一邊是「沉重的」。順便說一句,調用這個函數δ就太可怕了;稱它爲選擇器同樣糟糕。 Heaviside函數是H(x)(duh)並且是delta分佈的積分。 δ分佈是一個選擇器,但它不是一個函數。 –

+0

這是Oliver Heaviside,而不是George。 –

+0

@David:感謝您指出重磅與G. Heaviside的珍聞。所有這些年來,我認爲這是後來的形象,而不是一個人後的名字。順便說一句,維基百科提到奧利弗而不是喬治。此外,完全同意,三角洲是它的名字很差; '可能只是在問題中提到的論文使用了更合適的西格瑪,但是給定字體/代碼頁很難閱讀。 – mjv

0

如果你不想,如果要使用,你可以寫(在C#):

Math.Ceiling(Math.Sign(X)* 0.1)

在Java中,應該是這樣的:

Math.ceiling(Math.signum(X)* 0.1 )