问题标签 [randomized-algorithm]

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 投票
2 回答
309 浏览

random - 如何在FPGA中生成0到1之间的统一单精度浮点随机数?

我正在尝试通过生成 0 到 0x3f80000 之间的数字(IEEE 格式为 1)来使用 FPGA 生成单精度浮点随机数。但由于接近零的离散点数量多于 1,因此我没有得到统一的生成。是否有任何转换可以应用于模拟统一生成。我正在使用 LFSR(32 位)和 Xoshiro 随机数生成。

0 投票
3 回答
351 浏览

algorithm - 实现随机删除和插入的数据结构,其中元素在 [a,b] 中加权

我想设计一个数据结构和算法,这样,给定一个元素数组,其中每个元素都有一个根据 [a,b] 的权重,我可以实现恒定时间的插入和删除。删除是随机执行的,其中元素被删除的概率与其权重成正比。

我不相信有一种确定性算法可以在恒定时间内实现这两种操作,但我认为应该有随机算法可以做到这一点?

0 投票
0 回答
44 浏览

median - 计算 1 万亿的中位数(或近似中位数)翻倍

这是 Glassdoor 上发布的一个面试问题。

考虑一个包含 1 万亿个 double 的文件。如何找到中位数或近似中位数?您的计算机无法读取全部 1 万亿个 double。并行化算法是可以接受的。

最后一部分表明我可能可以使用中位数的中位数,甚至可以使用一些并行快速排序。对于前者,只需将文件分配给一定数量的处理器,以便每个进程都可以将文件的一部分读入内存。

我还认为@DJClayworth 在计算十亿数字的中位数中给出的方法也可以使用。我认为这篇文章中的其他技术是不可行的。

有哪些其他方法可以用于此?我可能对可以找到具有不错概率的近似中位数的随机算法感兴趣。

0 投票
3 回答
204 浏览

python - 使用python块随机化?

我有以下输入表(df):

A栏 B栏
一个 12 1
32 1
C 44 1
D 76 2
99 2
F 123 2
G 65 2
H 87 3
76 3
Ĵ 231 3
ķ 80 4
l 55 4
27 5
n 67 5
34 5

我想执行块随机化,以便从每个块中选择一个值(从 1、2、3、4、5 中选择一个值)并将其创建为单独的表。

输出应如下所示:

A栏 B栏 团体
32 1 A1
99 2 A1
76 3 A1
l 55 4 A1
27 5 A1
一个 12 1 A2
F 123 2 A2
ķ 80 3 A2
27 4 A2
n 67 5 A2
C 44 1 A3
H 87 2 A3
Ĵ 231 3 A3
n 67 4 A3
34 5 A4
D 76 1 A4
G 65 2 A4

随机选择的行,使每个组具有所有块(均匀分布)。

到目前为止我尝试了什么?

这不会根据块列随机化。我怎么做?

0 投票
1 回答
55 浏览

python - 将值随机分配给python中的行

我有以下输入表(y):

参数1 参数2
1 12
2 23
3 66
4 98
5 90
6 14
7 7
8 56
9 1

我想随机分配从 A1 到 A9 的值。输出表应如下所示:

参数1 参数2 参数3
1 12 A5
2 23 A2
3 66 A4
4 98 A8
5 90 A3
6 14 A7
7 7 A1
8 56 A9
9 1 A6

我无法填充它打印为 NaN 的第一行值。我该如何解决这个问题?

0 投票
1 回答
65 浏览

python - 带约束的二部网络保度随机化

我正在处理一个样本数据,其中包含几篇论文、它们所属的主题以及这些论文的发表年份,它看起来像这样:

paper_id 话题 pub_year
2031361154 0 1998
2088633475 1 1995
1987003396 2 1995
2246118404 3 1992
2017547909 1 1996
2032449907 4 1993
2053684599 0 1991
1968369145 1 1997
2160198778 4 1997
2026639487 3 1991

我正在尝试重新调整这些论文的发表年份(保持每个主题的论文数量和每年发表的论文数量不变),为空模型做准备。如果没有约束,这可以通过简单地完成np.random.permutation。改组出版年份后的示例表如下:

paper_id 话题 reshuffled_pub_year
2031361154 0 1998
2088633475 1 1997
1987003396 2 1995
2246118404 3 1992
2017547909 1 1996
2032449907 4 1993
2053684599 0 1991
1968369145 1 1997
2160198778 4 1995
2026639487 3 1991

但我想确保这些论文的改组年份保持在相应主题的期限内。例如,在第一个表中,关于主题 1 的论文仅在 1995 年、1996 年和 1997 年发表,因此所有关于主题 1 的论文的重新洗牌年份都停留在 1995 年至 1997 年期间。同理,[1991 年的主题 0, 1998],[1995] 中的主题 2,[1991,1992] 中的主题 3 和 [1993,1997] 中的主题 4。但是在第二个表中,2246118404 号论文的改版发表年份是 1998 年,因为这篇论文是关于主题 3,所以年份只能是 1991 年或 1992 年。所以我需要在改版期间指定约束条件。

我已经搜索过有关此问题的网页和论文,我认为这个问题可以建模为具有约束的双向网络保度随机化。该二分网络中的两种节点类型是 topic 和 pub_year,下图给出了一个示例网络:

示例网络

为了重新调整这个二分网络中的链接,我尝试configuration_model使用networkxpython。所以我可以保证题目的度数和年数(不过这和没区别np.random.permutation?)。但据我所知,configuration_model不接受任何约束。在此示例中,tp1 具有指向 y1 和 y2 的链接。因此,在所需的重新洗牌网络中,tp1 不能有到 y3 和 y4 的链接。同样,(tp2,y4)、(tp3,y1/y3)、(tp4,y1/y2) 之间没有链接。

我想知道我是否朝着正确的方向前进,即将这个任务建模为双向网络重组问题。如果是这样,我可以使用任何工具来完成这项任务吗?

0 投票
0 回答
59 浏览

c - 客户端/服务器的通信而不是返回随机数是返回随机符号

我需要打印服务器发送的随机数,但它打印随机符号它是一个类似于彩票的程序,它给了我 5 个数字和 2 颗星我搜索解决方案,但我没有找到任何解决方案。有人可以帮忙吗?这是我的代码,重要的是:..................................

客户

客户端控制台

0 投票
0 回答
22 浏览

algorithm - 在随机区块选择中,节点如何真正被选为下一个区块创建者?

在每个块的随机块选择中,都关联了一个生成签名字段。每个节点都用它的公钥签署这个参数,并计算它的哈希值(使用 SHA-256)。结果哈希的前 8 个字节被表示为节点的“命中”。为了被选为区块的下一个创建者,必须满足等式 hit < target(其中 target 是节点的权益、从最后一个验证区块经过的时间以及有关当前区块的信息的组合)。

现在,我有两个问题:

  1. 在任何时候,网络中的许多节点都可以满足该方程。真正如何从那些令人满意的节点中只选出一个节点来创建下一个区块?仅授予一个区块创建者选举的参数是什么?
  2. 如果只有一个节点被选为满足上述等式的节点,那么其他节点的作用是什么?Are they used as validators of the block created by the only elected node?
0 投票
2 回答
519 浏览

algorithm - Why is randomised quicksort considered better than standard quicksort?

In Cormen's own words - "The difference is that with the deterministic algorithm, a particular input can elicit that worst-case behavior. With the randomized algorithm, however, no input can always elicit the worst-case behavior."

How does adding a randomized pivot change anything, the algorithm is still gonna perform bad under some particular input and considering each kind of input equally likely this is no better than that of the standard quicksort, only difference being we don't actually know which particular input is going to cause the worst case time complexity. So why is the randomized version considered better?

0 投票
1 回答
30 浏览

random - 用空格替换逗号?Fisher-Yates 随机化

感谢@axtck对Fisher Yates 随机化的帮助,他帮助我在这里将数字变成了单词:

由于 shuffle 函数对数组索引进行了随机播放,因此您可以像以前一样对数组进行随机播放,但在数组中添加名称字符串。

代码现在显示一串用逗号分隔的单词,它运行良好!

现在我想用空格替换逗号(例如:Histoire Chien Koala Arbre Italique Lampadaire Docteur Boulet Maison Forge Gagnant Ennui)

有人可以帮我用空格更改这些逗号吗?

谢谢