Aviseringar
Rensa alla

Enklare matematiska problem att lösa


Åtta
Ämnesstartare

Jag söker lite enklare matematiska problem att lösa genom programmering. Nu syftar jag inte på Project Euler-problem, då de vanligen är alldeles åt helvete för svåra för mig. Tänk snarare typ gymnasiematte.

Övningen är inte tänkt att förbättra mina mattekunskaper, utan den är snarare tänkt att förbättra min förmåga att översätta problem från text till kod.


   
Citera

Köpa en bok i numeriska metoder eller liknande.
Är i och för sig dumt att köpa en dyr bok när det lär finnas gratis på nätet...


   
SvaraCitera
Åtta
Ämnesstartare

Myksa:

Är i och för sig dumt att köpa en dyr bok när det lär finnas gratis på nätet...

Prexakt min tanke.


   
SvaraCitera

Åtta:

Prexakt

Vilket väldans bra ord! [tard]
Taget...


   
SvaraCitera

Myksa:

Taget...

+1


   
SvaraCitera

Hmm gymnasiet, enklast då är väll om man kollar på lite diskret matte. Kan ju köra fakultet för att lära dig programmera rekursivt osv. Permutationer/Kombinationer mm om du inte tycker det är för enkelt.

I vad tänkte du programmera?

Det är 10 personer och vi ska välja 5 av dem för att ta ett kort. Hur många sätt kan vi välja personerna på?

Eftersom det inte var matten du var ute efter så är lösningen nedan

10! / 5! = 10*9*8*7*6 = X

Sen hur du programmerar det rekursivt får du lösa 🙂

- - - - - - - - - - - - - - - - - Sammanslagning 1 - - - - - - - - - - - - - - - - -

En till enkel som man kanske kan programmera:

Hur många tal mellan 0 och 500 är inte delbara på 2, 3, 5, 6, 8 eller 10?

Lösning:

Alla tal som är delbara på 2, 3 eller 5 är även delbara på 6, 8 och 10 då 2*3=6, 2*2*2=8 och 2*5=10.

500 - 500 / 2 = 250
250 - 250 / 3 = 167 (Heltalsberäkning)
167 - 167 / 5 = 134 (Heltalsberäkning)

SVAR: 134 !!!


   
SvaraCitera
Åtta
Ämnesstartare

aroon:

I vad tänkte du programmera?

Python.

aroon:

Eftersom det inte var matten du var ute efter så är lösningen nedan

Har ingenting emot att lära mig lite matte också, men i sådana fall så kanske jag kommer behöva lite handhållning. Jag läste bara till matte C, så jag vet t.ex. inte vad

aroon:

diskret matte

är.

F.ö. behöver jag lite hjälp med en övning som jag inte har en aning om hur jag ska lösa.

:

The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?

Tror det är mina bristande mattekunskaper som förstör för mig.


   
SvaraCitera

Åtta:

Python.

Då ska det inte vara några svårigheter 😀

Åtta:

inte vad vad diskret matte är.

Läs här och visare du skall bli:
http://sv.wikipedia.org/wiki/Diskret_matematik

- - - - - - - - - - - - - - - - - Sammanslagning 1 - - - - - - - - - - - - - - - - -

Åtta:

: The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?

Börja nerifrån och försök dela med primtalen, 2,3,5 osv. när det blir jämt svar från delningen (Kan använda mod om du programmerar och kola om du får 0) så bryter du ur det. försök med samma om och om igen tills det inte går.

I ditt exempel:

5* 2639 = 13195
5* 7 * 377 = 13195
osv

Sen mions jag inte om Python fixar så stora tal utan att man gör nått, vanliga ints kan ju vara max 2^32/2 ~ 2,147 miljarder.


   
SvaraCitera
Åtta
Ämnesstartare

aroon:

Läs här och visare du skall bli:

Redan gjort. Blev aningen visare, men inte mycket.

aroon:

Börja nerifrån och försök dela med primtalen, 2,3,5 osv.

Då måste jag ju få ut primtalen först.

Edit: Kirrade det hela.

Edit2: Tittade på din första uppgift. Förstår inte vad 10! / 5! innebär.

Edit3: Kirrade denna:

aroon:

Hur många tal mellan 0 och 500 är inte delbara på 2, 3, 5, 6, 8 eller 10?

Inte världens snyggaste lösning kanske, men det funkar i alla fall.

list = []
for i in xrange(1,501):
divisible = False
if i%2 == 0 or i%3 == 0 or i%5 == 0:
divisible = True
if divisible == False: list.append(i)
print len(list)

   
SvaraCitera

Åtta:

Förstår inte vad 10! / 5! innebär.

x! = x * (x-1) * (x-2) * ... * 2 * 1

2! = 1*2
3! = 1*2*3
4! = 1*2*3*4

10!/5! är alltså
2*3*4*5*6*7*8*9*10 / 2*3*4*5
Då kan man förkorta bort så att det blir: 6*7*8*9*10

Det är för övrigt fakultet.


   
SvaraCitera

hatar matte, läs min d-kurs åt mig?


   
SvaraCitera

[tard]

tur att man har er.


   
SvaraCitera
Åtta
Ämnesstartare

sylar:

Det är för övrigt fakultet.

Aha. Tack för förklaringen. Det var ju inte fullt lika komplicerat som det lät. Vad används det till?

ohYEA_:

hatar matte, läs min d-kurs åt mig?

Skulle gärna göra om jag kunde. [smile]


   
SvaraCitera

Åtta:

Aha. Tack för förklaringen. Det var ju inte fullt lika komplicerat som det lät. Vad används det till?

Vet inte faktiskt. Däremot så vet jag att det bland annat används inom kombinatoriken. En mängd med n-element har n! permutationer.

Om jag citerar Wikipedia ( http://sv.wikipedia.org/wiki/Permutation):
"Mängden C = {a,b,c} kan alltså permuteras på 3!=6 sätt: abc, acb, bac, bca, cab, cba."

Man kan kasta om ordet "APA" på såhär många sätt:
"APA"
"PAA"
"AAP"
3! / 2! = 3 sätt

Där 2! används för att ange antalet dubletter och 3! är antalet tecken.


   
SvaraCitera
Åtta
Ämnesstartare

sylar:

Däremot så vet jag att det bland annat används inom kombinatoriken. En mängd med n-element har n! permutationer.

Aha. Alltså t.ex. för att få fram alla möjliga kombinationer i en serie?


   
SvaraCitera