2013-02-25 23 views
5

Ich muss entweder zufällig eine "-1" oder eine "1" generieren, um das Vorzeichen einer Zahl nach dem Zufallsprinzip zu bestimmen ... Was ist die kürzeste Methode? Ich bin derzeit diese aber es scheint ziemlich lang:Zufällig generieren "-1" oder "1" - Kürzeste Methode

sign = (round((arc4random() % 2)))-((round((arc4random() % 2))) == 0);

Antwort

12

Was arc4random_uniform(2) ? -1 : 1?

oder arc4random_uniform(2)*2 - 1

+0

Nizza, seine wie eine zufällige binäre op – Shizam

+0

Oh, sehr schön! Multiplizieren mit 2 und Subtrahieren von 1, dachte nicht einmal daran! :) –

+1

Macht die '_uniform' es zu einer Ganzzahl? –

1
short int randomNumber() { 
return arc4random() % 2 ? 1 : -1; 
}