我有一個iPhone版本的應用程序,它使用一些代碼來設置顏色。在java中選擇隨機顏色
((rand() % 176) * 80)/256.0f
我是新來objective c
所以我想不通這是怎麼工作的。我想在Android上做一個精確的副本Java
。
在Java中我們通常使用Random()
。爲什麼我想實現使用此上述功能Random r = Random();
我有一個iPhone版本的應用程序,它使用一些代碼來設置顏色。在java中選擇隨機顏色
((rand() % 176) * 80)/256.0f
我是新來objective c
所以我想不通這是怎麼工作的。我想在Android上做一個精確的副本Java
。
在Java中我們通常使用Random()
。爲什麼我想實現使用此上述功能Random r = Random();
等效的一行中的Java將是:
((new Random().nextInt() % 176) * 80)/256.0f;
更多的JavaDoc
隨機類很顯然,你不應該創建一個新的每次都有Random
的實例。
Random r = new Random();
// call r.nextInt() each time you need a new random integer
double color = ((r.nextInt() % 176) * 80)/256.0f;
每當你想要一個新的隨機值時,沒有理由構造一個新的Random對象。 –
單行,但如果必須生成多個隨機數,則效率不高,否則就不會有效。 –
@HarmeetSingh你能解釋一下嗎? –
在Android中,我第一初始化變量rand = new Random()
。然後,我會寫你的表達爲:
rand.nextInt(176)/3.2f
(注意80/256.0 == 1/3.2
)。我只值賦給rand
一次,每次我需要一個新的顏色時重複使用相同的Random
對象。
有點背的最信封下班後,似乎你原來的代碼是計算0和55.0f之間均勻分佈的隨機浮點值只是一種奇特的方式。因此,做同樣的事情的一個更簡單的方法是:
rand.nextFloat(55)
這樣做的唯一缺點是,它並不像原來的代碼非常接近(儘管它具有相同的行爲)。
這真的很簡單。你不瞭解什麼部分?您發佈的代碼行是直C,其中沒有Objective-C。 – user1118321