我需要做的事情非常简单,所以我不需要创建一个复杂的程序,只需要使用一次,将这个结果作为我正在工作的真实项目的数据输入。
但可悲的是,这些程序总是会用完内存。事实上,在我的机器上,“最大”数字只能生成10个,而我需要50个。
我很确定有其他更有效的方法来实现这一点,但因为我不太了解所涉及的数学知识,所以我迫切需要您的帮助。你们中有人知道一些宝石、库或者甚至是算法,可以以不消耗所有内存的方式完成这个任务吗?慢一点没关系,正如我所说,我只需要生成这个东西一次。
我需要获取 N 元素集合的前 50 个(或者更好的随机的 50 个)组合,其中 N 的值从 2 到 50 不等。
在 Ruby 中,逻辑上会是这样:
require 'pp'
pp (1..50).to_a.permutation.to_a.first(50)
但可悲的是,这些程序总是会用完内存。事实上,在我的机器上,“最大”数字只能生成10个,而我需要50个。
我很确定有其他更有效的方法来实现这一点,但因为我不太了解所涉及的数学知识,所以我迫切需要您的帮助。你们中有人知道一些宝石、库或者甚至是算法,可以以不消耗所有内存的方式完成这个任务吗?慢一点没关系,正如我所说,我只需要生成这个东西一次。