在一定范围内生成随机数
来源:互联网 发布:天津市教育信息化软件 编辑:程序博客网 时间:2024/05/17 04:31
问题:给定一个最小正整数和一个最大正整数,如何在它们之间生成随机数(包含上下界)?
如果你有一定的开发经验,肯定用过随机颜色对某些控件做调试。实际上,生成随机颜色的实质也就是在一定范围内生成随机数。常用的生成随机数的函数是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))) }}
阅读全文
0 0
- 在一定范围内生成随机数
- C++在一定范围内生成不重复随机数序列
- 如何生成在一定范围内的double型的真正随机数?
- 怎样获得在一定范围内的随机数?
- 黑马程序员——C#怎么在一定范围内生成不重复的随机数
- 怎样在一定范围内获得理想的随机数
- 在一定范围内,随机生成N个不等的数组
- 【随机数】生成随机数模板
- 生成随机数
- 随机数生成
- 随机数生成
- 生成随机数
- 生成随机数
- 生成随机数
- 随机数生成
- 随机数生成
- 生成随机数
- 生成随机数
- 计算一个字符串中元音和辅音出现的次数
- 字符串的应用举例
- 如何返回一个字符串中多个单词相同的前缀
- 如何逆转一个字符串
- 逻辑分支和嵌套三目运算
- 在一定范围内生成随机数
- 自己写一个pow()函数
- 交换两个数
- 判断一个整数是否为素数
- 求平方根或近似平方根
- 从文件中读取字符串
- Swift中栈的实现
- Swift中队列的实现
- Swift 4新特性研究