Rand 和 RandBetween 函数

适用于:画布应用桌面流模型驱动应用 Power Platform CLI

返回一个伪随机数字。

描述

Rand 函数返回一个大于或等于 0 并小于 1 的伪随机数字。 例如,Rand() 可能返回 0.43147,可以返回 0 而不是 1

RandBetween 函数返回两个数字(包括)之间的伪随机整数(没有小数部分的整数)。 例如,RandBetween( 1, 3 ) 可能返回 123

易失函数

RandRandBetween 是易失函数。 每次计算该函数时会返回不同的值。

在数据流公式中使用易失函数时,如果对含有该函数的公式进行重新计算,该函数会返回不同的值。 如果公式中没有任何其他更改,在应用执行期间,它会具有相同的值。

例如,如果一个标签控件设为 Label1.Text = Rand(),则应用处于活动状态时,该控件不会改变。 只有关闭和重新打开应用会得到新值。

如果包含该函数的公式的其他内容发生了任何更改,会导致该函数进行重新计算。 例如,如果将示例更改为包含一个 Slider 控件,即设为 Label1.Text = Slider1.Value + Rand(),则每当 Slider 控件的值发生更改时会生成一个新的随机数字,标签的 text 属性会进行重新计算。 请参阅下文查看此示例。

如果在行为公式中使用,则每当计算该公式时,也会计算 RandRandBetween。 请参阅下文查看示例。

语法

Rand()

RandBetween( Bottom, Top )

  • Bottom - 必需。 函数可返回的最小整数。
  • Top - 必需。 函数可返回的最大整数。 必须等于或大于 Bottom

示例

基本用法

公式 说明 结果
Rand() 返回大于或等于 0 并且小于 1 的伪随机数字。 每次计算会有不同,例如,0.874252
Rand() * 100 在上一个示例的基础上,使用乘法将范围扩大到大于或等于 0 且小于 100。 每次计算会有不同,例如,78.42521
Int( Rand() * 100 ) 在上一个示例的基础上,使用 Int 函数去除小数部分,得到大于或等于 0 且小于 100 的整数 每次计算会有不同,例如,84
RandBetween( 0, 99 ) 在上一个示例的基础上,使用 RandBetween 函数执行相同的运算 每次计算会有不同,例如,21
RandBetween( -1, 1 ) 返回 -1 到 1(包括)之间的伪随机数字:-101 每次计算会有不同,例如,-1

使用 Rand 随着用户输入的更改显示不同的随机数字

  1. 添加一个 Slider 控件,然后将其重命名为 Slider1(如果它具有不同名称)。

  2. 添加一个 Label 控件,然后将 Text 属性设置为以下公式:

    Slider1.Value + Rand()

    标签显示 50(滑块的默认值)外加一个随机的十进制小数:

    屏幕显示一个 Label 控件,标签显示 50.741。

  3. 按住 Alt 键可更改滑块的值。

    每次更改滑块的值时,标签的小数部分会显示一个不同的随机数字:

    四个屏幕分别显示对应 Label 控件四个不同滑块设置的四个不同随机十进制值 70.899、84.667、90.134、99.690。

使用 RandBetween 创建随机数字表

  1. 添加 Button 控件,并将其 OnSelect 属性设置为以下公式:

    ClearCollect( RandomNumbers, ForAll( Sequence( 100 ), RandBetween( 1, 20 ) ))

    此公式创建一个单列的表,用于循环 100 次,从而得到 100 个随机数字。

  2. 添加一个 Data table,将其 Items 属性设置为RandomNumbers,并显示 Value 字段。

    RandomNumbers 集合的数据源选择。

  3. 按住 Alt 键,通过单击或点击按钮来选择按钮。

    数据表显示 1 到 20 之间的 100 个随机数字:

    具有 100 个随机数字的数据表。

  4. 再次选择该按钮以显示不同的随机数字列表:

    显示包含一组新随机数字的数据表的同一屏幕。

要生成单个随机数字而不是表,使用 Set( RandomNumber, Rand() )Set( RandNumber, RandBetween( 1, 20 ) )