我需要做的事情非常简单,所以我不需要创建一个复杂的程序,我只需要使用一次,将其结果作为我现在正在工作的真实项目的提要数据。
我需要获得一组 N 个元素的 50 个第一个(或者,更好的是 50 个随机数)组合,从 2 到 50 的每个值都是 N。
在 Ruby 中,从逻辑上讲,将类似于
require 'pp'
pp (1..50).to_a.permutation.to_a.first(50)
但遗憾的是,这些程序总是内存不足。事实上,我可以在我的机器上生成的“最大”数字是 10,我需要 50。
我很确定存在其他更有效的方法来实现这一点,但因为我不太了解所涉及的数学,我需要拼命寻求你的帮助。你们中的任何人都知道一些 gem、库,甚至是一种算法,它们以一种不消耗所有内存的方式来做到这一点。慢一点没关系,就像我说的,我只需要生成一次这个东西。