2016年4月30日 星期六 晴

数学题:用1颗红珠子,2颗蓝珠子,4颗绿珠子串成一个手链,可以串成___种不同的手链?

解答:这应该是一个排列组合问题,可惜我不知道怎么算,我只会枚举法。如果是教小孩的话,我只能一步步画出来教。如果题目变得更复杂,我也不知道怎么教了。

我又看了一些数学题,我觉得我很难解答出来,我之前没有学过奥数,也没系统学过,我解题跟下棋一样都是野路子,凭着灵光一闪做的。以后,要么我学习奥数教材,要么就彻底让机构来了。

作为程序员,写了python程序来解答这个问题(如果数学方法或者原理,编程可能会变得更简单): [code] #coding=utf-8 import itertools

def mysort1(mystring = ‘’, first = ‘a’): pos = mystring.index(first) return ‘%s%s’ % (mystring[pos:],mystring[:pos])

def mysort2(mystring = ‘’): return ‘%s%s’ % (mystring[0],mystring[::-1][:-1])

def main(): list1 = ‘abbcccc’ list2 = [] iter = itertools.permutations(list1,len(list1)) for item in list(iter): txt = mysort1(’’.join(item)) if txt not in list2: if mysort2(txt) not in list2: list2.append(txt) print len(list2) for item in list2: print item

if name == “main”: main() [/code]

答案有9种,如下: abbcccc abcbccc abccbcc abcccbc abccccb acbbccc acbcbcc acbccbc accbbcc