我的主要目標是從我的研究計劃中獲得這個程序的結果,所以即使有人有這樣一個可以下載的排列集合的現成數據庫,這對我在這裏的任務也是有幫助的。運行此程序需要什麼硬件?
這就是說,如果我能自己生成它,那對我所做的事會有好處。
計劃:
import itertools
set=['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l']
perm=list(itertools.permutations(set, 12))
print perm
我遇到的問題是硬件問題。
我的硬件規格如下:
imac 27in late 2012
Mac OSX Mountain Lion
8GB 1600MHz DDR3 RAM
Intel 3.4GHz i7
1TB HD with a bit more than 50% free space.
消息我收到的時候我嘗試運行的程序是,有沒有足夠的內存啓動盤上保持程序的開放,它要求我強制退出程序。它凍結,然後我必須修復我的權限後,硬重啓,讓一切再次平穩運行,所以:
我不建議按原樣運行此程序來測試它,除非您已經知道您的系統可以處理它。
但是,我的估計是,這個程序輸出一個列表(我認爲)大小爲12!這是不合規格的......超過5億個排列(輸出的實際大小可能小於12!,但它遠大於指數)。
那麼,我怎樣才能得到這些數據呢?我需要一個新的系統嗎?如果是這樣,我需要多少空間或RAM?
或者,是否有一些技巧可以用來將程序分成可管理的塊?
你打算如何處理排列,想存儲在什麼地方? – Karthikeyan
爲什麼將它轉換爲列表?爲什麼不把它作爲一個迭代器? –
@Karthikeyan我想存儲它,並且在其上找到並替換類型算法。他們實際上是NP完全問題的線性時間子例程的飼料。我有一個假設,當把這個置換集應用於一個NP完全問題的變量組時,將允許在P. –