我試圖根據一定的長度生成隨機字符串。例如,如果length = 4,我生成從aaaa到zzzz的所有字符串。我需要以後的所有重複測試。這是我如何去做:生成字符串和內存不足
len = 5
str = ('a'..'z').to_a.repeated_permutation(len).map(&:join)
問題是,這是佔用大量的內存。事實上,我的程序因爲Ruby解釋器無法分配足夠的內存而終止。有沒有更少的內存密集型方式來產生這些字符串?
編輯:萊恩在技術上是一個變量。它的範圍可以從2到7.
雖然這實際上對我來說工作正常,但它是一種生成456976可能字符串的非常低效的方法。您首先構建456976個字符數組,然後通過「連接」映射每個字符。你將會使用比需要更多內存和CPU的數量級。 – meagar 2013-03-13 13:27:56
我第一次看到你的長度爲4。對於5個字符,您正在查看11881376個字符串,但會生成並連接第一個11881376 5元素數組。 – meagar 2013-03-13 13:36:35