Rand 和 RandBetween 函数

适用于: 画布应用 Copilot Studio Desktop 流 模型驱动应用 Power Platform CLI Dataverse 函数 Power Pages

返回一个伪随机数字。

描述

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

RandBetween 函数返回一个伪随机整数(没有小数部分的整数),该整数介于两个数字(非独占)之间。 例如, RandBetween(1、3) 可能返回 123

易失函数

Rand 并且 RandBetween 是可变函数。 每次计算该函数时会返回不同的值。

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

例如,具有 Label1.Text = Rand() 的标签控件在应用处于活动状态时不会更改。 只有关闭和重新打开应用会得到新值。

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

行为公式中使用时, RandRandBetween 每次计算行为公式时都会进行评估。 请参阅下文查看示例。

语法

Rand()

RandBetween底部顶部

  • 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(序列(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) )。