diff --git a/k-noeudsCasseTete/noeuds.py b/k-noeudsCasseTete/noeuds.py index 8628f8d2388011f6ef918e41fc12c938dcd65271..24d5a8877873eedb1dce1acbadd2a04b62a303a4 100644 --- a/k-noeudsCasseTete/noeuds.py +++ b/k-noeudsCasseTete/noeuds.py @@ -1,4 +1,4 @@ -import sys +import sys, os PATTERNREMOVE=['aA','Aa','bB','Bb','cC','Cc'] @@ -24,49 +24,54 @@ def reduceOne(line): line=remove(line,pattern) return line -def test(filename): - f = open(filename, "r") - dat=[] - for line in f: - print("*----------------*") - line= line.rstrip() # removes trailing whitespaces and newlines - ma=line.replace('a','').replace('A','') - mb=line.replace('b','').replace('B','') - mc=line.replace('c','').replace('C','') - print("In:%s"%line) - ra, rb, rc = reduce(ma), reduce(mb), reduce(mc) - print("[a] : %s -> [%s]"%(ma,ra)) - print("[b] : %s -> [%s]"%(mb,rb)) - print("[c] : %s -> [%s]"%(mc,rc)) -#test("x-data.txt") +def test(candidate): + ma=candidate.replace('a','').replace('A','') + mb=candidate.replace('b','').replace('B','') + mc=candidate.replace('c','').replace('C','') + #print("In:%s"%line) + ra, rb, rc = reduce(ma), reduce(mb), reduce(mc) + outa="[a] %s -> (%s)"%(ma,ra) + outb=" [b] %s -> (%s)"%(mb,rb) + outc=" [c] %s -> (%s)"%(mc,rc) + res="" + reducedC=reduce(candidate) + wellformed= 'a' in reducedC and 'b' in reducedC and 'c' in reducedC + if ra=='' and rb=='' and rc=='' and wellformed: + res="**GOUDE**" + print("%8s %20s %20s %20s %s"%(candidate, outa, outb, outc, res)) + def replace(number, chrmod, pos): number[pos]=chrmod +TABLETTERS=['a','b','c','A','B','C'] # letters + def addOne(number, posadd): if (posadd>=len(number)): number.append('a') return - if number[posadd]=='a': - #replace(number, 'b', posadd) - number[posadd]='b' - return - if number[posadd]=='b': - replace(number, 'c', posadd) - return - if number[posadd]=='c': - replace(number, 'a', posadd) + currentLetter= number[posadd] + + index=TABLETTERS.index(currentLetter) + newindex=(index+1)%6 + replace(number, TABLETTERS[newindex], posadd) + if currentLetter=='C': #recursive call addOne(number, posadd+1) return -T=100 +#T=6**3+6**2+6 +K=10 +T=(6**(K+1))//(6-1)-1 def enumerate(): num=['a'] print ("%d %s"%(0,num)) for i in range(1,T): - addOne(num,0) - print ("%d %s"%(i,''.join(num))) + addOne(num,0) #list-number + candidate=''.join(num) #string-number + #print ("%d %s"%(i,''.join(num))) + test(candidate) -enumerate() \ No newline at end of file +enumerate() +print("PWD:",os. getcwd()) \ No newline at end of file diff --git a/k-noeudsCasseTete/zSol.txt b/k-noeudsCasseTete/zSol.txt new file mode 100644 index 0000000000000000000000000000000000000000..59254fa3aab21d3f82409242ffdb2cd9eb463c80 --- /dev/null +++ b/k-noeudsCasseTete/zSol.txt @@ -0,0 +1,41 @@ +BACabABcba [a] BCbBcb -> () [b] ACaAca -> () [c] BAabABba -> () **GOUDE** +BCbcACBcba [a] BCbcCBcb -> () [b] CcACca -> () [c] BbABba -> () **GOUDE** +BCbABacAba [a] BCbBcb -> () [b] CAacAa -> () [c] BbABaAba -> () **GOUDE** +CAcBCacAba [a] CcBCcb -> () [b] CAcCacAa -> () [c] ABaAba -> () **GOUDE** +CABabcBAba [a] CBbcBb -> () [b] CAacAa -> () [c] ABabBAba -> () **GOUDE** +cABabCBAba [a] cBbCBb -> () [b] cAaCAa -> () [c] ABabBAba -> () **GOUDE** +cACBcaCAba [a] cCBcCb -> () [b] cACcaCAa -> () [c] ABaAba -> () **GOUDE** +BcbABaCAba [a] BcbBCb -> () [b] cAaCAa -> () [c] BbABaAba -> () **GOUDE** +BcbCAcBCba [a] BcbCcBCb -> () [b] cCAcCa -> () [c] BbABba -> () **GOUDE** +BAcabABCba [a] BcbBCb -> () [b] AcaACa -> () [c] BAabABba -> () **GOUDE** +CABacACbca [a] CBcCbc -> () [b] CAacACca -> () [c] ABaAba -> () **GOUDE** +CBcbABCbca [a] CBcbBCbc -> () [b] CcACca -> () [c] BbABba -> () **GOUDE** +BAbCBabAca [a] BbCBbc -> () [b] ACaAca -> () [c] BAbBabAa -> () **GOUDE** +CBcACabAca [a] CBcCbc -> () [b] CcACaAca -> () [c] BAabAa -> () **GOUDE** +bABCbaBAca [a] bBCbBc -> () [b] ACaAca -> () [c] bABbaBAa -> () **GOUDE** +CbcACaBAca [a] CbcCBc -> () [b] CcACaAca -> () [c] bAaBAa -> () **GOUDE** +BACacbCAca [a] BCcbCc -> () [b] ACacCAca -> () [c] BAabAa -> () **GOUDE** +bACacBCAca [a] bCcBCc -> () [b] ACacCAca -> () [c] bAaBAa -> () **GOUDE** +CbcBAbCBca [a] CbcBbCBc -> () [b] CcACca -> () [c] bBAbBa -> () **GOUDE** +CAbacACBca [a] CbcCBc -> () [b] CAacACca -> () [c] AbaABa -> () **GOUDE** +bACaBAbcBa [a] bCBbcB -> () [b] ACaAca -> () [c] bAaBAbBa -> () **GOUDE** +bCBcACbcBa [a] bCBcCbcB -> () [b] CcACca -> () [c] bBAbBa -> () **GOUDE** +CAbaBcbABa [a] CbBcbB -> () [b] CAacAa -> () [c] AbaBbABa -> () **GOUDE** +cAbaBCbABa [a] cbBCbB -> () [b] cAaCAa -> () [c] AbaBbABa -> () **GOUDE** +bCBAbacABa [a] bCBbcB -> () [b] CAacAa -> () [c] bBAbaABa -> () **GOUDE** +CAcbCacABa [a] CcbCcB -> () [b] CAcCacAa -> () [c] AbaABa -> () **GOUDE** +bcBAbaCABa [a] bcBbCB -> () [b] cAaCAa -> () [c] bBAbaABa -> () **GOUDE** +cACbcaCABa [a] cCbcCB -> () [b] cACcaCAa -> () [c] AbaABa -> () **GOUDE** +bcBCAcbCBa [a] bcBCcbCB -> () [b] cCAcCa -> () [c] bBAbBa -> () **GOUDE** +bAcaBAbCBa [a] bcBbCB -> () [b] AcaACa -> () [c] bAaBAbBa -> () **GOUDE** +cABaCAcbCa [a] cBCcbC -> () [b] cAaCAcCa -> () [c] ABaAba -> () **GOUDE** +cBCbABcbCa [a] cBCbBcbC -> () [b] cCAcCa -> () [c] BbABba -> () **GOUDE** +cBCAcabACa [a] cBCcbC -> () [b] cCAcaACa -> () [c] BAabAa -> () **GOUDE** +BAbcBabACa [a] BbcBbC -> () [b] AcaACa -> () [c] BAbBabAa -> () **GOUDE** +BAcaCbcACa [a] BcCbcC -> () [b] AcaCcACa -> () [c] BAabAa -> () **GOUDE** +bAcaCBcACa [a] bcCBcC -> () [b] AcaCcACa -> () [c] bAaBAa -> () **GOUDE** +bABcbaBACa [a] bBcbBC -> () [b] AcaACa -> () [c] bABbaBAa -> () **GOUDE** +cbCAcaBACa [a] cbCcBC -> () [b] cCAcaACa -> () [c] bAaBAa -> () **GOUDE** +cbCBAbcBCa [a] cbCBbcBC -> () [b] cCAcCa -> () [c] bBAbBa -> () **GOUDE** +cAbaCAcBCa [a] cbCcBC -> () [b] cAaCAcCa -> () [c] AbaABa -> () **GOUDE** +