问题标签 [random]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
27 回答
281019 浏览

c# - 生成随机密码

当我们网站上的用户丢失密码并前往“丢失密码”页面时,我们需要给他一个新的临时密码。我真的不介意这是多么随机,或者如果它符合所有“需要”的强密码规则,我想做的就是给他们一个密码,他们以后可以更改。

该应用程序是用 C# 编写的 Web 应用程序。所以我想变得刻薄,并采用简单的方法来使用 Guid 的一部分。IE

建议?想法?

0 投票
11 回答
14119 浏览

math - 如何测试随机性(例如 - 洗牌)

首先,这个问题是从这个问题中删除的。我这样做是因为我认为这部分比一个较长问题的子部分更大。如有冒犯,请见谅。

假设您有一个生成随机性的算法。现在你如何测试它?或者更直接地说——假设你有一个洗牌的算法,你如何测试它是一个完全随机的算法?

为这个问题添加一些理论 - 一副纸牌可以在 52 中洗牌!(52阶乘)不同的方式。拿一副牌,用手洗牌,写下所有牌的顺序。你得到那个洗牌的概率是多少?答案:1 / 52!。

洗牌后,你依次得到每种花色的 A、K、Q、J ……的机会是多少?回答 1 / 52!

因此,只需洗牌一次并查看结果,您绝对不会获得任何关于洗牌算法随机性的信息。两次,你有更多的信息,三个甚至更多......

您将如何黑盒测试洗牌算法的随机性?

0 投票
2 回答
2427 浏览

visual-studio - 调试期间算术下溢或上溢异常

这是奇怪行为的一天。

我们有一个使用 Delphi 2007 制作的 Win32 项目,它承载 .NET 运行时并调用 .NET 以显示新表单,作为过渡期的一部分。

最近,我们开始在看似随机的位置和代码点遇到异常:算术上溢或下溢。

其中之一的堆栈跟踪如下所示:

在 Visual Studio 解决方案中,最外层的类库之一(即,它可以提取所有引用)已经设置了一个特定的调试程序,以 Delphi 项目输出为目标。这允许我们从 Visual Studio 调试 .NET 代码,即使程序的主要部分是用 Delphi 编写的。

该问题仅在从调试器运行时出现,而不是在我们直接运行 exe 文件时(通过资源管理器、快捷方式,甚至是Visual Studio 中的Ctrl+ )。F5

机器上显然没有间谍软件(如 this 暗示的那样

还有什么我们可以检查的吗?


编辑:看起来 .NET 调试器启用了这个 SNaN 标志,而 Delphi 调试器没有。我们将不得不对此进行进一步调查,但现在我将接受@Lorenzo Boccaccia的回答。

显然解决了

好的,看起来我们终于解决了这个问题。对于我们的测试人员来说,在没有附加调试器的情况下开始出现问题,因此我们必须优先考虑问题的优先级。

最后,我们发现了有问题的机器的一个常见问题,它们是配备 NVIDIA Quadro NVS 110M 的 Dell Lattitude D620 笔记本电脑,其系统映像中的旧驱动程序用于配置笔记本电脑,早在 2006 年。

我在网上找到了一篇帖子,虽然我在重新启动以更新显示驱动程序时丢失了 url,导致 .NET 服务崩溃,主要是当机器忙于在屏幕上做某事时。重现他的问题的一种方法是打开 C:\ 的命令提示符并执行 aDIR /S以强制进行大量屏幕更新,这将触发崩溃。

他也有一个 NVIDIA 视频卡。

我的机器上的问题大约每 2-4 次启动我们的程序就会出现,但在更新视频驱动程序后,我已经成功启动了 123 次,没有任何问题。(顺便说一句,我可以为这些事情推荐AutoHotKey )。

所以看起来我们找到了罪魁祸首,一个旧的/有缺陷的 NVIDIA 驱动程序。

更新了这个问题,以便将来有人可以节省一些时间。

现在,如果你能原谅我,我要去角落里哭。

被诅咒了!

我一定是把它搞砸了。在更新视频驱动程序后,我刚刚发布了上述更新,同事的笔记本电脑就出现了故障。

不过,我很肯定它现在是我们应用程序之外的一个问题,所以只需要弄清楚要更新哪些具体的东西。


进一步更新:好的,我的机器现在显然是固定的,我同事的机器不是这样。到目前为止,我们已经更新了 BIOS、芯片组驱动程序,目前 XP 的 SP3 即将推出。

今晚将进行老化测试,该应用程序将在夜间启动,因为问题在启动期间或第一次执行某些 WinForms .NET 代码时突然出现。这个应用程序主要是一个 Delphi Win32 应用程序,但它承载 .NET 运行时,问题似乎与 .NET 代码有关。当我们“启动”.NET 运行时,问题可能会出现,或者当我们从 Win32 触发第一个 .NET 窗口时,它也会出现。


从统计学上讲,我现在准备发布此代码。一夜之间,该应用程序已启动 3051 次而没有出现错误,而在我更新视频驱动程序之前,它每 2-4 次崩溃一次。

发现(!/?)

这种修复错误的折磨感觉就像去看医生,接下来会发生以下对话:

我已经刺激并戳了应用程序,最后我想我已经找到了我们所做的导致这个问题的事情。

在我们的应用程序中,我们托管来自 Delphi 2007 Win32 应用程序的 .NET 运行时,在我们的胶水代码中,我们有以下行(现在):

中间的两个常量原来只有一个 0,意思是选择默认值。这种变化是几个月前引入的,此后问题一直在慢慢蔓延到我们身上。引入此更改是为了鼓励 ANTS 分析器加载我们的 Win32 应用程序 + 托管的 .NET 运行时,以便进行性能分析,而我们当时引入的更改使这项工作发挥了作用。此外,算术上溢/下溢的问题正在慢慢变得更糟,所以我敢打赌,这个问题在更改后的一段时间内都没有出现,因此它与我们所做的任何更改都无关。

此外,由于我们仅(最初)在通过调试器运行时看到了问题,因此我们认为 Visual Studio 和/或 Delphi 有问题。

无论如何,现在从统计上看,在一个屏幕上的浏览器重复由 javascript 触发的上下滚动(显然需要触发错误),然后我已经能够成功启动应用程序 726 次,调用中的值为 0 ,并且它在 17 次中有 5 次崩溃,其中有两个常数。

让我们先不要讨论是谁做出了这种改变。我敢肯定罪魁祸首是想匿名...

0 投票
11 回答
45223 浏览

c# - 随机加权选择

考虑下面代表代理的类:

我想从数组中随机选择一个经纪人,考虑到他们的权重。

你觉得下面的代码怎么样?

我没那么自信。当我运行这个时,经纪人 A 总是比经纪人 D 获得更多的命中,并且它们具有相同的权重。

有没有更准确的算法?

谢谢!

0 投票
5 回答
9148 浏览

sql-server - T-SQL 中的随机加权选择

如何根据所有候选行的应用权重随机选择 T-SQL 中的表行?

例如,我在一个表中有一组行,权重分别为 50、25 和 25(加起来为 100 但不需要),我想随机选择其中一个,其统计结果相当于相应的重量。

0 投票
10 回答
41129 浏览

python - 通过 SQLAlchemy 获取随机行

如何使用 SQLAlchemy 从表中选择一个或多个随机行?

0 投票
7 回答
8485 浏览

php - 在不使用 shuffle() 函数的情况下,在 PHP 中随机化数组顺序的最佳方法是什么?

我在一次工作面试中被问到这个问题。面试官和我不同意正确答案是什么。我想知道是否有人有这方面的任何数据。

更新:我应该提到 shuffle() 的使用是严格禁止的......对不起。

0 投票
5 回答
4555 浏览

java - java代码的等效vb代码

谁能告诉我这段Java代码到底是做什么的?


逐步解释将很有用,以便我可以在 VB 中重新创建此代码。谢谢

0 投票
11 回答
1606 浏览

unit-testing - 对可以具有随机行为的方法进行单元测试

今天下午我遇到了这种情况,所以我想问问你们是做什么的。

我们有一个用于用户密码重置的随机密码生成器,在修复它的问题时,我决定将例程移到我的(缓慢增长的)测试工具中。

我想测试生成的密码是否符合我们制定的规则,但当然函数的结果将是随机的(或者,好吧,是伪随机的)。

你们会在单元测试中做什么?生成一堆密码,检查它们都通过并认为足够好?

0 投票
50 回答
471345 浏览

ruby - 如何在 Ruby 中生成随机字符串

我目前正在为“A”..“Z”生成一个 8 字符的伪随机大写字符串:

但它看起来并不干净,并且不能作为参数传递,因为它不是单个语句。为了获得混合大小写的字符串“a”..“z”加上“A”..“Z”,我将其更改为:

但它看起来像垃圾。

有没有人有更好的方法?