sat_utils.py

来自「著名的ldpc编解码的资料及源代码」· Python 代码 · 共 28 行

PY
28
字号
import randomdef MakeRandom3SatProb(numVars,numClauses):    result = []    for i in range(numClauses):        row = [random.randint(1,numVars)]                for j in range(1,3):            next = random.randint(1,numVars)            while (row.count(next)):                next = random.randint(1,numVars)            row.append(next)        for j in range(3):            if (random.randint(0,1)):                row[j]=-row[j]        result.append(row)    return resultdef SatSolutionFailsP(prob,sol):    for clause in range(len(prob)):        ok = 0        for var in prob[clause]:            if ( (var > 0 and sol[var-1]) or (var < 0 and not sol[-var-1]) ):                ok = 1        if (not ok):            return clause    return -1

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?