【问题标题】:generate random language in LotusScript在 LotusScript 中生成随机语言
【发布时间】:2021-03-11 10:03:11
【问题描述】:

我尝试为个人文档生成随机语言以在 LotusScript 中进行测试:

Dim arr_language(0 To 10) As String
arr_language(0) = "English"
    arr_language(1) = "Spanish"
    arr_language(2) = "Chinese"
    arr_language(3) = "German"
    arr_language(4) = "Dutch"
    arr_language(5) = "Swedish"
    arr_language(6) = "French"
    arr_language(7) = "Danish"
    arr_language(8) = "Italian"
    arr_language(9) = "Polish"
    arr_language(10) = "Portugese"  

Dim language As String
language = arr_language( Round(Rnd()* UBound(arr_language) ,0) )

我注意到有时“语言”有时是空的。我做错了什么?

【问题讨论】:

  • 我没看出有什么问题?
  • 该代码运行良好。可能是语言随后在个人文档的一个字段中设置,并且该字段正在将值更改为“”。这可以是 ComputeWithForm 或字段转换公式。
  • 只有一件事:通常人们会使用 Int(Rnd() * UBound(arr_language) + 1) 来获得更好的分布。当您使用 round 时,边距 0 和 10 的可能性大约是所有其他值的一半...

标签: lotus-notes lotusscript


【解决方案1】:

首先:您的代码没问题,尽管它不会以相同的概率生成所有语言:对于 100 个用户,英语和葡萄牙语uese 将出现大约 4-5 次,而其他语言会出现 10-11 次。

如果您将代码更改为

language = arr_language( Int(Rnd() * (UBound(arr_language) + 1)) )

那么所有值的概率都差不多。

但是:尽管如此,您的代码将始终生成一个介于 0 和 10 之间的数字,因此将设置变量语言。

要真正回答您的问题,您需要提供为语言生成“空”输出的那部分代码。我猜 - 和 Rob 一样 - 你把这个值放到一个文档的字段中,然后它可能会被 ComputeWithForm 或任何其他重新计算的方法删除。

例如您的“语言”字段可能是一个不允许新值的 DialogList,并且您的一个或多个数组值不是该字段的有效条目,因此被删除(在计算或打开时)...

如果我可以提问,我会说它是“葡萄牙语”的值,因为在英语中正确的拼写是“葡萄牙uese”......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-10
    • 2023-03-27
    • 2018-06-19
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    相关资源
    最近更新 更多