gpt4 book ai didi

wolfram-mathematica - 高效和有条件的元组或子集

转载 作者:行者123 更新时间:2023-12-04 17:56:33 26 4
gpt4 key购买 nike

从以下问题退一步:

Selecting with Cases

我需要生成一个随机集(1 000 000 项就足够了)

Subsets[Flatten[ParallelTable[{i, j}, {i, 1, 96}, {j, 1, 4}], 1], {4}]

此外,我需要拒绝任何具有非唯一第一元素的四元组,例如 {{1,1},{1,2},{2,3},{6,1}} .

但以上在笔记本电脑上是不可能的。我怎么能统一绘制一百万套避免杀死我的机器?

最佳答案

如果您有一个基本集,您需要生成 4 个元素的子集,

baseSet = Flatten[Table[{i, j}, {i, 1, 96}, {j, 1, 4}], 1];

您可以使用 RandomSample如下:
RandomSample[baseSet, 4]

这为您提供了 baseSet 的长度为 4 的随机子集.在我非常旧的机器上生成一百万只需要 2.5 秒:
Timing[subsets = Table[RandomSample[baseSet, 4], {1000000}];]

并非所有我们得到的都是不同的子集,因此我们需要使用 Union 删除重复项:
subsets = Union[subsets];

在此之后,由于可能的子集数量更多( Binomial[Length[baseSet], 4] == 891 881 376 ),我在样本运行中仍然剩下 999 971 个项目

关于wolfram-mathematica - 高效和有条件的元组或子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7903307/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com