Střední škola - matematický příklad

David98

Střední škola - matematický příklad
« kdy: 17. 06. 2016, 21:30:48 »
Kolik je mezi lety 2001 až 3000 letopočtů dělitelných třemi. Radši se ptám, ale myslím si že stačí rozdíl vydělit třemi.


source

Re:Střední škola - matematický příklad
« Odpověď #1 kdy: 17. 06. 2016, 21:49:04 »
Možná ano, ale nebral bych to jako jistotu. Kolik je čísel dělitelných třemi např. mezi 3 a 9? (9-3)/3=2, ale to je špatná odpověď.

martin

Re:Střední škola - matematický příklad
« Odpověď #2 kdy: 17. 06. 2016, 21:52:35 »
Není to typický příklad, jako je 5 pouličních lamp, kolik je mezi nimi mezer? Vždy si to raději maluju... :)

Jenda

Re:Střední škola - matematický příklad
« Odpověď #3 kdy: 17. 06. 2016, 22:11:41 »
for i in `seq 2002 2999`; do echo $(( $i % 3 )); done|grep 0 | wc -l

.

Re:Střední škola - matematický příklad
« Odpověď #4 kdy: 18. 06. 2016, 00:35:47 »
Už jenom pouhý letmý pohled na zadání by tě měl utvrdit v tom, že to nebude tak jednoduché. Protože pak by jich musel být stejný počet mezi lety 1001 a 2000 a mezi lety 2001 a 3000, což zjevně není (v případě, že se zahrnují i krajní meze, což z tvého zadání jasně nevyplývá).


.

Re:Střední škola - matematický příklad
« Odpověď #5 kdy: 18. 06. 2016, 00:41:46 »
for i in `seq 2002 2999`; do echo $(( $i % 3 )); done|grep 0 | wc -l
Řešení hrubou silou je v dnešní době často nejefektivnější, postrádá ale kouzlo a na konci jaksi chybí pocit uspokojení z toho, že jsem na to přišel.

Fantomas

Re:Střední škola - matematický příklad
« Odpověď #6 kdy: 18. 06. 2016, 00:50:40 »
Možná ano, ale nebral bych to jako jistotu. Kolik je čísel dělitelných třemi např. mezi 3 a 9? (9-3)/3=2, ale to je špatná odpověď.
Mas recht, mezi 3 a 9 je pouze 6.

source

Re:Střední škola - matematický příklad
« Odpověď #7 kdy: 18. 06. 2016, 08:10:44 »
Osobně bych to řešil kombinatorikou. Dělitelnost třemi je právě tehdy, je-li ciferný součet dělitelný třemi. Stačí tak najít kombinace dělitelné třemi a ty permutovat v patřičných mezích.

Radovan.

Re:Střední škola - matematický příklad
« Odpověď #8 kdy: 18. 06. 2016, 08:33:28 »
Kolik je mezi lety 2001 až 3000...
Takže v letech 2002..2999? A vydělit třemi to určitě nestačí.

gogo

Re:Střední škola - matematický příklad
« Odpověď #9 kdy: 18. 06. 2016, 08:54:59 »
podobny
https://projecteuler.net/problem=1

akorat u tohodle odecist zacatek, zkontrolovat/upravit krajni meze, vydelit 3, soucet ciselne rady. trivos ;)

Re:Střední škola - matematický příklad
« Odpověď #10 kdy: 18. 06. 2016, 08:57:04 »
A vydělit třemi to určitě nestačí.

Protože čísla 3000 a 2001 jsou dělitelná třemi, stačí jejich rozdíl vydělit třemi a odečíst jedničku: (3000 - 2001) / 3 - 1

Re:Střední škola - matematický příklad
« Odpověď #11 kdy: 18. 06. 2016, 08:57:18 »
Jde o obyčejnou aritmetickou posloupnost: a1=2004, d=3, an=2997. Snadno odvoditelný vzoreček an=a1+(n-1).d vás dostane po dosazení 2997 = 2004 + (n-1).3 do kýženého uspokojení... n=(2997-2004)/3 + 1.= 332 ;-)

Jenda

Re:Střední škola - matematický příklad
« Odpověď #12 kdy: 18. 06. 2016, 15:37:50 »
for i in `seq 2002 2999`; do echo $(( $i % 3 )); done|grep 0 | wc -l
Řešení hrubou silou je v dnešní době často nejefektivnější, postrádá ale kouzlo a na konci jaksi chybí pocit uspokojení z toho, že jsem na to přišel.
Já mám většinou pocit uspokojení z toho, že celý program funguje, a moc neřeším, jak (ne)elegantním způsobem jsem k tomu došel.

Samozřejmě kdyby těch čísel nebylo tisíc, ale miliarda, nebo by se to počítalo opakovaně, tak se nad tím taky zamyslím a vyřeším to „správně“. Když ale jednorázově něco takového potřebuju, tak je prostě nejrychlejší napsat za necelou minutu ten oneliner.

gl

Re:Střední škola - matematický příklad
« Odpověď #13 kdy: 18. 06. 2016, 15:53:52 »
Aritmetické posloupnosti se dají pěkně zapisovat v perlu 6.
Kód: [Vybrat]
perl6 -e 'say +(2004, 2007 ... 2997)'
perl6 -e 'say +(2004,  * + 3 ... 2997)'
perl6 -e 'say +(2004,  2007  ...^ 3000)'

ByCzech

  • *****
  • 1 848
    • Zobrazit profil
    • E-mail
Re:Střední škola - matematický příklad
« Odpověď #14 kdy: 18. 06. 2016, 19:39:34 »
for i in `seq 2002 2999`; do echo $(( $i % 3 )); done|grep 0 | wc -l
Řešení hrubou silou je v dnešní době často nejefektivnější, postrádá ale kouzlo a na konci jaksi chybí pocit uspokojení z toho, že jsem na to přišel.
Já mám většinou pocit uspokojení z toho, že celý program funguje, a moc neřeším, jak (ne)elegantním způsobem jsem k tomu došel.

Samozřejmě kdyby těch čísel nebylo tisíc, ale miliarda, nebo by se to počítalo opakovaně, tak se nad tím taky zamyslím a vyřeším to „správně“. Když ale jednorázově něco takového potřebuju, tak je prostě nejrychlejší napsat za necelou minutu ten oneliner.

To je jako když děcka v první třídě počítají na prstech. To mě moc neuspokojuje  :o