美文网首页
在一定范围内生成随机数

在一定范围内生成随机数

作者: 落叶刺客 | 来源:发表于2017-08-12 22:39 被阅读54次
问题:给定一个最小正整数和一个最大正整数,如何在它们之间生成随机数(包含上下界)?

  如果你有一定的开发经验,肯定用过随机颜色对某些控件做调试。实际上,生成随机颜色的实质也就是在一定范围内生成随机数。常用的生成随机数的函数是arc4random_uniform(_ __upper_bound: UInt32) -> UInt32,在使用它的时候有几点需要注意:

1、它生成的随机数范围是[0, +∞);
2、它所使用数值的类型是UInt32,并不是Int,因此需要做类型转换。

  因为使用arc4random_uniform(_ : )函数生成的随机数不包含上界,但是我们的题目要求包含上界,所以在上下界相减时需要加1,以确保程序通过:

func challenge(min: Int, max: Int) -> Int {
    return Int(arc4random_uniform(UInt32(max - min + 1))) + min
}

challenge(min: 2, max: 30)

  最后再给一个随机颜色的代码。我们可以考虑给UIColor写一个扩展,将随机颜色的代码写在它的扩展中,这样使用的时候回比较方便:

extension UIColor {
    
    // RGB
    convenience init(r: CGFloat, g: CGFloat, b: CGFloat, alpha: CGFloat = 1.0) {
        self.init(red: r / 255.0, green: g / 255.0, blue: b / 255.0, alpha: alpha)
    }
    
    // 随机颜色
    class func randomColor() -> UIColor {
        return UIColor(r: CGFloat(arc4random_uniform(256)), g: CGFloat(arc4random_uniform(256)), b: CGFloat(arc4random_uniform(256)))
    }
}

相关文章

  • 在一定范围内生成随机数

    问题:给定一个最小正整数和一个最大正整数,如何在它们之间生成随机数(包含上下界)?   如果你有一定的开发经验,肯...

  • 在以太坊生成随机数的几种方式(含代码)

    一、什么是随机数 随机数都是由随机数生成器(Random Number Generator)生成的。随机数分为”真...

  • 生成随机数

    两个C函数 rand()函数生成的随机数是伪随机数,所谓伪随机数,指的是程序每次运行,生成的随机数都是不变的,生成...

  • 巧用对象,生成不重复随机数

    有时候我们需要在一定范围内生成一组不重复的随机数组,我们可能会这样做: 运行截图: 可以看到,这样实现的方式篇幅比...

  • Golang生成随机数的方法总结

    生成区间随机数 生成指定区间随机数(包括纯数字/纯字母/随机)

  • PHP生成随机数

    PHP生成随机数,相信大家在做项目的时候是最常见的吧。js生成随机数,PHP生成随机数。 应用场景:用户注册/登录...

  • Excel怎么生成随机数?

    Excel怎么生成随机数?如何生成指定范围内的随机数呢?可以在Excel中使用函数,生成随机数。 1、在单元格中输...

  • go生成随机数字和固定长度字符串

    生成随机数字 go可以通过math/rand包来生成随机数在生成随机数之前,需要一个种子,用于整个过程的初始化,否...

  • 无处不在的随机数

    目录: 什么是随机数 随机数分类 伪随机数生成器 真随机数生成器 各种语言中的随机数 使用系统时间作为种子是否安全...

  • 功能函数

    生成随机数组

网友评论

      本文标题:在一定范围内生成随机数

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