不確定該示例(也不是實際用例)是否符合NP-Complete,但是我想知道最Python的Python方法下面假設這是可用的算法。在Python中獲取NP-Complete(?)問題的對象的所有可能狀態
假設你有:
class Person:
def __init__(self):
self.status='unknown'
def set(self,value):
if value:
self.status='happy'
else :
self.status='sad'
... blah . Maybe it's got their names or where they live or whatev.
,並需要一組人的一些操作。 (這裏的關鍵是無論這個人是高興還是悲傷)
因此,鑑於PersonA,PersonB,PersonC,PersonD - 我想最終列出可能的2 ** 4組合的傷心和快樂的人。即
[
[ PersonA.set(true), PersonB.set(true), PersonC.set(true), PersonD.set(true)],
[ PersonA.set(true), PersonB.set(true), PersonC.set(true), PersonD.set(false)],
[ PersonA.set(true), PersonB.set(true), PersonC.set(false), PersonD.set(true)],
[ PersonA.set(true), PersonB.set(true), PersonC.set(false), PersonD.set(false)],
etc..
是否有一個很好的Pythonic方法做到這一點?我在考慮列表解析(並修改對象,以便可以調用它並獲得返回的兩個對象,true和false),但是我所看到的理解格式將要求我提前知道人員數量。我希望獨立於人數這樣做。
編輯:假設無論我將要在這個上運行的操作是更大的問題集的一部分 - 我們需要測試給定集的人的所有值以解決我們的問題。 (即我知道這現在看起來並不完整)=) 有什麼想法?
謝謝!
這與NP完整性沒有任何關係...... – 2009-02-12 19:15:04
是啊,NPc可能是描述這個錯誤的方法。 – 2009-02-12 21:25:03