2013-02-25 94 views
5

मुझे यादृच्छिक रूप से किसी संख्या के संकेत को यादृच्छिक रूप से "-1" या "1" उत्पन्न करने की आवश्यकता है ... सबसे छोटी विधि क्या है? मैं वर्तमान में इस का उपयोग कर रहा है, लेकिन यह बहुत लंबा लगता है:यादृच्छिक रूप से "-1" या "1" उत्पन्न करें - सबसे छोटी विधि

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

उत्तर

12

arc4random_uniform(2) ? -1 : 1 बारे में क्या?

या arc4random_uniform(2)*2 - 1

+0

अच्छा है, इसकी एक यादृच्छिक द्विआधारी सेशन की तरह – Shizam

+0

ओह, बहुत अच्छा है! 2 से गुणा करके और घटाकर 1, उस बारे में भी सोचा नहीं था! :) –

+1

क्या '_uniform' इसे पूर्णांक बनाता है? –

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