当前位置: 首页 > 面试题库 >

如何在arc4random_uniform()的范围之间产生随机数?

尹冠宇
2023-03-14
问题内容

因此,我在此代码位中的目标是随机掷两个骰子,众所周知,您的普通骰子只有6个面,因此我导入了Foundation以访问arc4random_uniform(UInt32)。我尝试使用(1..7)的范围来避免随机获得0,但是返回了一个我不太喜欢的错误。我试图这样做:

dice1 = arc4random_uniform(UInt32(1..7))

但是那又回来了

找不到接受提供的参数的’init’的重载

我希望这是足够的信息,可以为您提供帮助,帮助您:)

请注意,我只是在操场上练习快速运动。我不必学习如何做到这一点。在我跳入构建实际应用程序之前,只是我动手了:D

//imports random number function
import Foundation
//creates data storage for dice roll
var dice1: UInt32 = 0
var dice2: UInt32 = 0
//counter variable
var i = 0
//how many times snake eyes happens
var snakeeyes = 0
 //how many times a double is rolled
var `double` = 0
//rolls dice 100 times
while i < 100{
    //from here
    //sets dice roll

这将返回错误“ Range $ T3”不能转换为UInt32

   dice1 = arc4random_uniform(1..7)
   dice2 = arc4random_uniform(1..7)
    //checks for snake eyes
    if dice1 == 1 && dice2 == 1 {
        snakeeyes = snakeeyes + 1

    }
    //checks for doubles
    if dice1 == dice2{
        `double` = `double` + 1
    }
    //increases counter
        i = i + 1
    //to here
}
println("You got Snake Eyes \(snakeeyes) times.")
println("You got Doubles, \(`double`) times.")

问题答案:

我相信你应该做

dice1 = arc4random_uniform(6) + 1;

以获得1-6的范围。虽然我没有执行iOS目标C,但是我也不了解Swift语言。随机方法应返回0到5之间的值,而+ 1将使其变成1到6之间的值。

如果您需要一个介于10到30之间的范围,则只需

int random = arc4random_uniform(21) + 10;


 类似资料:
  • 问题内容: 我还没有找到一个函数来生成在一定范围内给定长度的随机浮点数组。 我看过随机抽样,但是似乎没有函数可以满足我的需要。 random.uniform接近,但它仅返回单个元素,而不返回特定数字。 这就是我所追求的: 这将返回在range中均匀分布的50个随机非唯一浮点数(即允许重复)的数组。 有这样的功能吗? 问题答案: 适合您的用例: 2019年10月更新: 虽然仍支持语法,但看起来API

  • 问题内容: 我正在寻找一种有效的方法来在Swift中生成具有任意范围(甚至可能是或)的大数(包括浮点类型!)。 我见过的所有现有问题要么因大值()而崩溃,要么不支持范围。我知道您可以从中读取随机字节,但这无助于将这些值限制为给定的时间间隔(而且我敢肯定,循环直到无效为止)。 问题答案: 这是的可能解决方案,并且可以与所有这些类型一起使用。它被编写为扩展方法(现已针对Swift2进行了更新),但是对

  • 问题内容: 我正在尝试生成一个随机双精度值,但不包括它的下限和上限(下限,上限)。我已经看到了很多有关生成数字的问题,包括从数字的下限到上限,但不包括数字的上限(下限,上限),但是由于没有解决此问题,因此他们没有回答我的问题。 我已经为这个问题提出了两个“解决方案”,但都不是很满意。 第一个“解决方案” 尽管这几乎每次都会在第一次尝试时给出有效的结果,但它似乎不一致且笨拙,并且如果rng经常返回0

  • 问题内容: 我想在特定范围内生成随机数。(例如范围在65到80之间) 我尝试按照下面的代码,但不是很完整。它还返回大于最大值的值。值(大于80)。 如何生成范围之间的随机数? 问题答案: 给出介于65(含)和80(不含)之间的随机整数,其中之一。

  • 编者注:此代码示例来自Rust 1.0之前的版本,在语法上不是有效的Rust 1.0代码。此代码的更新版本会产生不同的错误,但答案仍然包含有价值的信息。 我遇到了下面的例子,说明了如何使用Rust生成一个随机数,但它似乎不起作用。这个例子没有显示它适用于哪个版本的Rust,所以可能它已经过时了,或者可能我搞错了什么。 当我试图编译此文件时,会出现以下错误: 在同一页(上面)上还有另一个例子(如下所

  • 本文向大家介绍在javascript中随机数 math random如何生成指定范围数值的随机数,包括了在javascript中随机数 math random如何生成指定范围数值的随机数的使用技巧和注意事项,需要的朋友参考一下 今天有朋友向我请教:JavaScript 怎么生成指定范围数值随机数。Math.random() 这个方法相信大家都知道,是用来生成随机数的。不过一般的参考手册时却没有说明