随机数

作者: ios小菜 | 来源:发表于2019-03-28 16:27 被阅读0次

    问:给定能随机生成整数 1 到 5 的函数,写出能随机生成整数 1 到 13 的函数。

    // [产生1,5]的随机值,且相等
    - (NSInteger)rand5 {
        NSInteger num = rand()%5+1;
        return num;
    }
    
    - (NSInteger)rand13 {
        int i = [self rand5] - 1;// 0到[4]
        int j =  [self rand5] - 1; //[0到[4]]
        int num = i *7+j; //[0...32],
        if (num >25) {
            return [self rand13];
        } else {
            return num %13+1;
        }
    }
    

    讲解:因为0到25取余得到的1到13的概率是相等的,后面的[26...32],是[1...13]的区间的一半,所以概率也是相等的

    相关文章

      网友评论

          本文标题:随机数

          本文链接:https://www.haomeiwen.com/subject/wlqcbqtx.html