Finne et set som samsvarer med kravene (Python)
Posted: 08/02-2015 13:27
Code: Select all
#coding=utf-8
import random
import math
def sjekk(t):
X1 = t
X = set([x for x in X1 if x>0])
A = set([x%2 for x in X])
B = set([math.pow(y,2) for y in X ])
C = set([math.pow(z, 0.5) for z in X.intersection(B)])
D = set([math.pow(w, 2) for w in C])
if len(X)>0 and len(X) in X and len(A) not in X and sum(X) in B and sum(X) and sum(B) not in X and sum(C) in X or sum(D) in X:
print "Vårt originale sett X er","\t\t ", X1
else:
print "Oppfyller ikke kravene"
def guess():
b = 100
genSet = random.sample( range(2,b), 6 )
t = set(genSet)
print "Vårt tilfeldig genererte set er: ", t
return sjekk(t)
counter=0
while not guess():
print counter
counter+=1
print counter
Jeg antar jeg kan ta i bruk en random-funksjon som genererer et tilfeldig tall og sette det inn for 6 for å angi lengden på settet tilfeldig? Men så er det nye spørsmålet i hvilken range disse tilfeldige tallene skal genereres i da det ikke er oppgitt noen øvre grense i oppgaven...
Her er noen hint gitt med oppgaven. Kan hende jeg har gått glipp av noe som står der: Har fulgt det første hintet og prøvd å regne meg fram til et sett som oppfyller kravene for hånd og kom fram til et set:
X = set([6, 36, 31, 33, 11, 4])
...da får vi at
A = set([1])
B = set([36, 1296, 961, 1089, 121, 16])
C = set([6])
D = set([36])
Noen som ser hva som kan gjøres?