Page 1 of 1

Sets (Python)

Posted: 05/02-2015 00:39
by pi-ra
sets, python.PNG
sets, python.PNG (21.05 KiB) Viewed 2549 times
Har fått i oppgave å løse dette settet ved bruk av Python. Er ny både når det gjelder Python og sånne type oppgaver. Har sittet med oppgaven ganske lenge, men skjønner ikke hvordan jeg skal løse den. Det som gjør det mest problematisk er at man i hver av betingelsene, i. ii. iii. skal bruke svar fra en eller to av de andre betingelsene..?

Svært takknemlig for alle innspill. Står helt fast :?

Re: Sets (Python)

Posted: 05/02-2015 21:12
by pi-ra
Dette er kodene jeg har prøvd:

Alternativ 1:

Code: Select all

def a_func(x):
    if (b_func(x)%2==0):
        return c_func(x)+11
    else:
        return 2*c_func(x)-129

def b_func(x):
    return a_func(x)*c_func(x) % 2377

def c_func(x):
    k=0
    c0=0
    ovre = a_func(x)-1
    for i in range(0, ovre+1):
        c0 = b_func(x) - 7 * k
        k+=1
    return c0+142

def all(x):
    return a_func(x), b_func(x), c_func(x)

for x in range(1, 449):
    print all(x)
Alternativ 2:

Code: Select all

for a in range(1,449):
    for b in range(1, 449):
        for c in range(1, 449):

            #a-funksjonen
            if b%2==0:
                a=c+11

            elif b%2!=0:
                a=2*c-129

            #b-funksjonen
            b = (a*c)%2377


            #c-funksjonen
            k = 0
            c0=0
            upper = a-1
            for i in range(0, upper+1):
                c0 = b-7*i
                k+=1
            c = c0 + 142
            print a, b, c

Re: Sets (Python)

Posted: 07/02-2015 01:15
by Gustav

Code: Select all

def s(x,y):
	return x*y-7*sum(xrange(0,x)) + 142

for b in xrange(1,450):
	for c in xrange(1,450):
		
		if b%2 == 0 :
			a = c+11
			if b == a*c %2377 and c == s(a,b) : 
				print a,b,c
		else :
			a = 2*c-129
			if b == a*c %2377 and c == s(a,b) : 
				print a,b,c

Re: Sets (Python)

Posted: 07/02-2015 01:23
by pi-ra
Fikk det til til slutt, men takk!

Re: Sets (Python)

Posted: 07/02-2015 10:53
by pi-ra
Oppdaget nå at koden din var mye kjappere da den bokstavelig talt var ti ganger kjappere - takk!

Re: Sets (Python)

Posted: 07/02-2015 11:59
by Gustav
pi-ra wrote:Oppdaget nå at koden din var mye kjappere da den bokstavelig talt var ti ganger kjappere - takk!
Det går an å gjøre koden kjappere hvis det er poenget. F.eks. kan vi erstatte summen i funksjonen s med summeformelen, så vi får koden

Code: Select all

def s(x,y): return (y-3.5*(x-1))*x + 142

for b in xrange(0,450):
	for c in xrange(0,450):
		if b%2 == 0 :
			a = c+11
			if b == a*c %2377 and c == s(a,b) : 
				print a,b,c
		else :
			a = 2*c-129
			if b == a*c %2377 and c == s(a,b) : 
				print a,b,c
EDIT: visste seg at det ikke var noe vits med den siste koden da begge kjører på ca. 5 ms på min nye laptop.