乱数を発生させる
Objective-Cで乱数を発生させるには「random」関数,もしくは「arc4random」関数を使用します。
「random」関数はそのまま実行すると実行するたびに同じパターンで擬似乱数を発生します。
実行するたびに異なるパターンで乱数を発生させるには「srand」関数を使用してシードを与える必要があります。
「arc4random」関数は「srand」関数を使用しなくても実行するたびに異なるパターンで乱数を発生させることができます。
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
// [クラスメソッド TEST]ボタンを押した時 Min:6 max:1に変更した場合
- (IBAction)doTest:(id)sender {
// 乱数発生
unsigned int ret = [ViewController getRandomWithMin:6 max:1];
NSLog(@"%d", ret);
}
//// 乱数発生(汎用)サイコロ
//-(unsigned int)getRandomWithMin:(unsigned int)minVal
// max:(unsigned int)maxVal {
//
// return minVal + arc4random() % (maxVal + 1 - minVal);
//}
//// クラスメソッド乱数発生(汎用)サイコロ
//+ (unsigned int)getRandomWithMin:(unsigned int)minVal
// max:(unsigned int)maxVal {
//
// return minVal + arc4random() % (maxVal + 1 - minVal);
//}
// クラスメソッド乱数発生(汎用)サイコロ Min:6 max:1に変更した場合
+ (unsigned int)getRandomWithMin:(unsigned int)minVal
max:(unsigned int)maxVal {
// 大小逆転対応1
// if (minVal < maxVal) return 0;
// 大小逆転対応2
if (minVal > maxVal) {
unsigned int tmpVal = minVal;
minVal = maxVal;
maxVal = tmpVal;
}
return minVal + arc4random() % (maxVal + 1 - minVal);
}
@end
GitHub Random
▫️参考ページ
コメントをお書きください