Tämä koodi esittelee polynomien muodostamista. Kyseissä ohjelmassa polynomi muodostuu kertoimesta ja eksponentista. Lisäksi ohjelma muodostaa lausekkeen, jossa on yksi asetetaan tietty kirjain lausekkeen kantaluvuksi.
Ohjelma näyttää lopuksi tulokset ja laskee määrät ja ensimmäisen sijainnin.
import random def Polynomi(pituus): #Muodostetaan polynomi. poly = "" for i in range(0,pituus): if(i != 0): poly += " + " poly += chr(97+i)+"x^"+str(pituus-i) return poly def PolynomiMerkki(pituus,merkki): #Muodostetaan polynomi. poly = "" for i in range(0,pituus): if(i != 0): poly += " + " poly += chr(merkki)+"^"+str(pituus-i) return poly return poly pituudet = [] #Arvotaan viiden eri polynomin pituus. for i in range(5): pituudet.append(random.randrange(1,11)) #Ohjelmassa on kahdenlaisia polynomeja ensimmäisessä on usempi eri kirjain ja toisessa yksi kirjain. #Arvotaan merkki polynomia varten. merkki = random.randrange(97,107) polynomit = list(map(lambda i: Polynomi(i),pituudet)) polynomitMerkki = list(map(lambda i: PolynomiMerkki(i,merkki),pituudet)) #Muodostetaan kokonaisuus. tulokset = {"polynomi":polynomit,"merkki":polynomitMerkki} #Näytetään polynomit. print(pituudet) print("") for i in tulokset["polynomi"]: print(i) print("") for i in tulokset["merkki"]: print(i) print("") #Lasketaan ensimmäinen sijainti määrät. for i in range(1,11): print(str(i) + ":") if (i in pituudet): print("ensimmäinen sijainti: " + str(pituudet.index(i)+1)) print("määrä: " + str(pituudet.count(i))) else: print("Ei löydy") print("")
Tuosta tulee taas vaikutelma, että et ihan ymmärrä edes, mitä ne polynomin "useampi eri kirjain" ovat. Ja tuo "ensimmäinen sijainti"on taas jokin ihan oma juttusi, jolla ei ole mitään tekemistä polynomien tai minkään muunkaan olennaisen kanssa.
Opettele käyttämään listoja ja generaattoreita oikein. Muuten teet täysin purkkakoodia Pythonin näkökulmasta. Tästäkin lähtisi puolet pois, kun nuo alun funktiot tekisi siistillä yhden rivin lausekkeella (join + generaattori), ja pituudet voisi myös luoda yhdellä rivillä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.