Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Python: Polynomien muodostus

koodaaja [20.10.2021 18:02:36]

#

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("")

Metabolix [21.10.2021 08:20:03]

#

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ä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta