Created
March 17, 2013 13:59
-
-
Save quabug/5181623 to your computer and use it in GitHub Desktop.
1、第一個答案是b的問題是哪一道? (a)2;(b) 3;(c)4;(d)5;(e)6 2、唯一兩道具有連續相同答案的題目是? (a)2,3;(b)3,4;(c)4,5;(d)5,6;(e)6,7; 3、本題答案與哪一題相同? (a)1;(b)2;(c)4;(d)7;(e)6 4、答案是a的問題個數是? (a)0;(b)1;(c)2;(d)3;(e)4 5、本題答案與哪一題相同? (a)10;(b)9;(c)8;(d)7;(e)6 6、答案是a的問題數量與答案是什麼的問題數量相同? (a)b;(b)c;(c)d;(d)e;(e)以上都不是 7、按照字母順序,本題答案與下一題相差幾個字母? (a)4;(b)3;(c)2;(d)1;(e)0。(注…
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import itertools | |
candidates = itertools.product('abcde', repeat=10) | |
for c in candidates: | |
if q1(c) and q2(c) and q3(c) and q4(c) and q5(c) and q6(c) and q7(c) and q8(c) and q9(c) and q10(c): | |
print(c) | |
def q1(candidate): | |
this_answer = candidate[0] | |
answers = { 'a':2, 'b':3, 'c':4, 'd':5, 'e':6 } | |
numQuestionWithAnwserB = answers[this_answer]; | |
return candidate[numQuestionWithAnwserB-1] == 'b'; | |
def q2(candidate): | |
this_answer = candidate[1] | |
numQuestionWithSameAnwser = 0; | |
for i in range(len(candidate)-1): | |
if candidate[i] == candidate[i+1]: | |
if numQuestionWithSameAnwser != 0: | |
return False | |
else: | |
numQuestionWithSameAnwser = i + 1 | |
answers = { 'a':2, 'b':3, 'c':4, 'd':5, 'e':6 } | |
return answers[this_answer] == numQuestionWithSameAnwser | |
def q3(candidate): | |
this_answer = candidate[2] | |
answers = { 'a':1, 'b':2, 'c':4, 'd':7, 'e':6 } | |
return candidate[answers[this_answer]-1] == this_answer; | |
def q4(candidate): | |
this_answer = candidate[3] | |
answers = { 'a':0, 'b':1, 'c':2, 'd':3, 'e':4 } | |
return answers[this_answer] == candidate.count('a') | |
def q5(candidate): | |
this_answer = candidate[4] | |
answers = { 'a':10, 'b':9, 'c':8, 'd':7, 'e':6 } | |
return candidate[answers[this_answer]-1] == this_answer; | |
def q6(candidate): | |
this_answer = candidate[5] | |
#answers = { 'a':'b', 'b':'c', 'c':'d', 'd':'e', 'e':'' } | |
#cntAns = { ans:candidate.count(ans) for ans in 'abcde' } | |
#cntAnsA = cntAns['a'] | |
answers = { 'a':1, 'b':2, 'c':3, 'd':4 } | |
cntAns = [ candidate.count(ans) for ans in 'abcde' ] | |
cntAnsA = cntAns[0] | |
if this_answer != 'e': | |
return cntAnsA == cntAns[answers[this_answer]] | |
else: | |
return cntAns.count(cntAnsA) == 1 | |
def q7(candidate): | |
this_answer = candidate[6] | |
answers = { 'a':4, 'b':3, 'c':2, 'd':1, 'e':0 } | |
return abs(ord(this_answer) - ord(candidate[7])) == answers[this_answer] | |
def q8(candidate): | |
this_answer = candidate[7] | |
answers = { 'a':2, 'b':3, 'c':4, 'd':5, 'e':6 } | |
return candidate.count('a') + candidate.count('e') == answers[this_answer] | |
def q9(candidate): | |
this_answer = candidate[8] | |
q8_answers = { 'a':2, 'b':3, 'c':4, 'd':5, 'e':6 } | |
q8_value = q8_answers[candidate[7]] | |
# base on q8 and assume there's only one correct answer for each questions. | |
answers = { 'a':7, 'b':6, 'c':4, 'd':8, 'e':0 } | |
return answers[this_answer] + q8_value == 10 | |
def q10(candidate): | |
return True |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment