2010-02-17 15 views
8

बटन क्लिक होने पर आप यादृच्छिक संख्या कैसे उत्पन्न करते हैं, और उस नंबर के आधार पर, विभिन्न कार्रवाइयां होती हैं।आईफोन एसडीके में यादृच्छिक संख्या?

मुझे शायद 1-10 से केवल यादृच्छिक संख्या की आवश्यकता है।

-(IBAction)buttonClicked{ 

"generate the random number" 

if(number == 1){ 

    something happens 
} 

else if(number == 2){ 
    somethine else happens 
} 

etc 

} 
+0

http://stackoverflow.com/questions/160890/generating-random-numbers-in-objective-c –

उत्तर

14

और कृपया, कृपया, अगर आप 1 से 10 तक एक यादृच्छिक संख्या पैदा कर रहे हैं ... स्विच का उपयोग नहीं बल्कि एक ढेर से अगर {} के किसी और यदि {} खंड:

switch (arc4random() % 10){ 
case 0: 
    //blah blah 
    break; 
case 1: 
    //blah blah 
    break; 
//etc etc 
} 
+0

अभी तक बेहतर, 0 के बीच यादृच्छिक संख्या पैदा करने के लिए एक उचित एल्गोरिथ्म का उपयोग करें और * एन * 0 और * n_max * के बीच यादृच्छिक संख्याओं के समान वितरण से: java.util.Random # nextInt (int) में लागू एक बहुत अच्छी तरह से सोचा गया है: http://java.sun.com/javase/ 6/docs/api/जावा/util/Random.html # nextInt% 28int% 29 – Joey

4

रूप Obj सी सी भाषा का सुपरसेट आप स्वतंत्र रूप से उपयोग कर सकते हैं rand समारोह

27

वहाँ) रैंड (साथ कुछ समस्याएं जो वहाँ के बारे में पोस्ट का भार कर रहे हैं और वे सुझाव है कि आप arc4random() का उपयोग बजाय। यह फ़ंक्शन स्वचालित रूप से बीजित होता है और संख्या पीढ़ी के लिए 'बेहतर' एल्गोरिदम होता है।

int myNumber = arc4random() % 10 

इसका मतलब यह होगा कि myNumber 0-9 के बीच होगा।

तो आपके मामले में आप चाहते हैं:

int number = (arc4random() % 2) + 1; 

जो आप 1-2 की एक श्रृंखला प्रदान करेगा।

2

आप उपयोग कर सकते हैं आप एक क्रिप्टोग्राफी द्वारा सुरक्षित यादृच्छिक संख्या की जरूरत है:

int SecRandomCopyBytes (
    SecRandomRef rnd, 
    size_t count, 
    uint8_t *bytes 
); 

के रूप में वर्णित here

1

मैं अच्छा पड़ा है arc4random() के साथ सफलता - बस एक श्रेणी निर्धारित करने के लिए मॉड्यूलस। उदाहरण के लिए:

arc4random()% 100;

मैं सक्रिय रूप से रैंड() का उपयोग करने से बचूंगा क्योंकि यह वास्तव में यादृच्छिक संख्या उत्पन्न नहीं करता है और इसे बीजित करने की आवश्यकता है।

0

NSArray *arr=[NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10", nil]; NSMutableArray *valueArray=[[NSMutableArray alloc]init];

int count=0; 
while(count<5) 
{ 


    int rand= arc4random()%10; 
    NSLog(@"%d",rand); 


    NSString *str=[arr objectAtIndex:rand]; 
    if(![valueArray containsObject:str]) 
    { 
    [valueArray addObject:str]; 
    count++; 
    } 




} 


NSLog(@"%@",valueArray);