Kombinatoriikka, laskuharjoitukset I, tehtävä 4

Tarkastellaan joukkoa:

Sn={(a1,a2,…,an) Rn|ai {0,1,2,3} kaikilla indeksilla i}

Sanotaa, että joukkkoon Sn kuluva vektori (a1,a2,…,an) on parillinen, jos kokonaisluku a1+a2,…,+an on parillinen, muulloin sanotaan, että ko vektori on pariton. Kuinka paljon parillisia Sn::n kuuluvia vektoreita?

 

Tama kommentojono laskee n=2 tapauksessa. Tarvitset Active Python, jos haluat suorita ohjelman.

 


#jen maara 
luku=2 #1,3

import math #import math, vii!!
def isodd(num):	#Onko parillinen
	return num & 1 and True or False # xx1,xx0?
digit=luku
sum=0
sum1=0
for i in range(0, int(math.pow(10,digit))):
	string=str(i).zfill(digit)
	if ((string.find('4')<>-1) or (string.find('5')<>-1) or (string.find('6')<>-1) or (string.find('7')<>-1) or (string.find('8')<>-1) or (string.find('9')<>-1)):
		string=string #ei tehdaan mitaan
	else:
		sum=0 #kelponen ehdokas, ei mitaan muuta paitsi 123 or 4
		for char in string:
			sum=sum+int(char) #jokainen luku ehdokalla lisataan summaan.
		if not(isodd(sum)): #onko se parillinen, ei pariton?
			sum1=sum1+1 #on parillinen, kuinka paljon niita?
print luku, 'lukuja'
print sum1		#nain
raw_input("Paina ENTER jatkoksi")	# S