Rand 和 RandBetween 函数
适用于: 画布应用 桌面流 模型驱动应用 Power Pages Power Platform CLI
返回一个伪随机数字。
描述
Rand 函数返回一个大于或等于 0 并小于 1 的伪随机数字。 例如,Rand() 可能返回 0.43147,可以返回 0 而不是 1。
RandBetween 函数返回两个数字(包括)之间的伪随机整数(没有小数部分的整数)。 例如,RandBetween( 1, 3 ) 可能返回 1、2 或 3。
易失函数
Rand 和 RandBetween 是易失性函数。 每次计算该函数时会返回不同的值。
在数据流公式中使用易失函数时,如果对含有该函数的公式进行重新计算,该函数会返回不同的值。 如果公式中没有任何其他更改,在应用执行期间,它会具有相同的值。
例如,如果一个标签控件设为 Label1.Text = Rand(),则应用处于活动状态时,该控件不会改变。 只有关闭和重新打开应用会得到新值。
如果包含该函数的公式的其他内容发生了任何更改,会导致该函数进行重新计算。 例如,如果将示例更改为包含一个 Slider 控件,即设为 Label1.Text = Slider1.Value + Rand(),则每当 Slider 控件的值发生更改时会生成一个新的随机数字,标签的 text 属性会进行重新计算。 请参阅下文查看此示例。
如果在行为公式中使用,则每当计算该公式时,也会计算 Rand 和 RandBetween。 请参阅下文查看示例。
语法
兰德()
RandBetween( 底部, 顶部 )
- bottom - 必需。 函数可返回的最小整数。
- Top - 必需。 函数可返回的最大整数。 必须等于或大于 Bottom。
示例
基本用法
公式 | 说明 | 结果 |
---|---|---|
兰德() | 返回大于或等于 0 并且小于 1 的伪随机数字。 | 每次计算会有不同,例如,0.874252。 |
兰德()* 100 | 在上一个示例的基础上,使用乘法将范围扩大到大于或等于 0 且小于 100。 | 每次计算会有不同,例如,78.42521。 |
Int(Rand()* 100) | 在上一个示例的基础上,使用 Int 函数去除小数部分,得到大于或等于 0 且小于 100 的整数 | 每次计算会有不同,例如,84。 |
RandBetween(0,99) | 在上一个示例的基础上,使用 RandBetween 函数执行相同的运算 | 每次计算会有不同,例如,21。 |
RandBetween(-1,1) | 返回 -1 到 1(包括)之间的伪随机数字:-1、0 或 1。 | 每次计算会有不同,例如,-1。 |
使用 Rand 随着用户输入的更改显示不同的随机数字
添加一个 Slider 控件,然后将其重命名为 Slider1(如果它具有不同名称)。
添加一个 Label 控件,然后将 Text 属性设置为以下公式:
Slider1.Value + Rand()
标签显示 50(滑块的默认值)外加一个随机的十进制小数:
按住 Alt 键可更改滑块的值。
每次更改滑块的值时,标签的小数部分会显示一个不同的随机数字:
使用 RandBetween 创建随机数字表
添加 Button 控件,并将其 OnSelect 属性设置为以下公式:
ClearCollect(RandomNumbers,ForAll(Sequence(100),RandBetween(1,20)))
此公式创建一个单列的表,用于循环 100 次,从而得到 100 个随机数字。
添加一个 Data table,将其 Items 属性设置为RandomNumbers,并显示 Value 字段。
按住 Alt 键,通过单击或点击按钮来选择按钮。
数据表显示 1 到 20 之间的 100 个随机数字:
再次选择该按钮以显示不同的随机数字列表:
要生成单个随机数字而不是表,使用 Set( RandomNumber, Rand() ) 或 Set( RandNumber, RandBetween( 1, 20 ) )。