Nejste přihlášen/a.
Myslím si pětimístné číslo, které není dělitelné třemi ani čtyřmi. Pokud každou číslici zvětším o jedna, získám pětimístné číslo, které je dělitelné třemi. Pokud každou číslici o jedna zmenším, získám pětimístné číslo dělitelné čtyřmi. Pokud prohodím libovolné dvě číslice, číslo se zmenší. Jaké číslo si můžu myslet? Najděte všechny možnosti.
Nalezení všech možnosti je možné při systematickém postupu.
Číslo je dělitelné 3, když je součet číslic dělitelný 3. Tedy po zvýšení každé číslice o 1 se součet zvýší o 5. Maximální součet číslic může být 45 (9 krát 5).Minimální součet číslic je 1 (v případě čísla 10000).
Pořadí číslic zleva doprava je takové, že na pozicích víc vlevo jsou větší číslice, např. 98765, nebo např. 54321. Tím je totiž počet možností výrazně zredukován, protože
Číslo je dělitelné 4, když poslední dvojčíslí je dělitelné 4. Tedy je celkem 25 možností (ze 100 variací) tak, aby bylo nějaké číslo dělitelné 4.
Asi bych tedy zvili systematický postup prověřování jednotlivých variant. Sice to asi není "smart" způsob, ale s trpělivostí se to dá zvládnout.
Toto je klucove : "Pokud prohodím libovolné dvě číslice, číslo se zmenší."
To znamena, vzdy je vacsia cislica pred mensou, to dost obmedzuje moznosti pri patcifernom cisle. Odporucam prejst si kriteria delitelnosti 3 a 4, cislice oznacit napr a,b,c,d,e a sformulovat z podmienok "zvysim o jedna, zmenism o jedna" jednoduche rovnice.
Dalsie riesenie, ktore by som ako ajtak nasadil, je brute force skript v lubovolnom jazyku ako : Java, Javascript, C, C++ ...
Ono to zas tak tezke neni. Nemusite zadne variace nebo brute force.
Cislice oznacime: abcde. Podminky: a>b>c>d>e, a<=8 (aby slo o jedna zvetsit), e >=1 (aby slo o jedna zmensit).
Tyto tri podminky vedou na 4 vysledky: 87654, 76543, 65432, 54321. No a toto uz snad urcite
Co tak 43210? Cisto len kvoli zmensovaniu o jedna, ako to chape zadavatel? Nasleduje po nule deviatka?
Myslím si, že by to mělo být řešeno takto:
Je 25 možností krajních dvou číslic tak, aby nějaké číslo bylo dělitelné 4. Od tohoto počtu v řešení tohoto příkladu je potřeba odečíst určitý počet možností, protože nelze použít krajní číslice 00,44,88 a taky nelze použít např. krajní číslice 04,08, 12 atd.Nelze taky např. použít 96,92 atd. protože číslice druhá zprava musí být větší nebo rovna 2 a současně menší nebo rovna 5.
Lze tedy použít "variace" ,52,48,40,32,20
Těchto 5 možností je potřeba "prověřit", tedy zjistit, jaké jsou možnosti uspořádání dalších tří číslic na levých "pozicích" čísla.
Samozřejmě "brute force přístup" je možné použít, ale i když by to bylo uděláno nějakým prográmkem, tak čas strávený nad vytvořením prográmku je pořád výrazně větší, než čas potřebný k tomuto "prověření".
Možná 65431, 76531, 76543, 86431 a 87631.
Nejslepší by byla ta hrubá síla nějakého počítadla.
Ale jinak (stručně):
Číslice se od leva zmenšují, levá je 8 a méně, pravá 1 a více.
Dělitelnost 4: Na konci sudá, menší nebo = 3 (kvůli zmenšování zleva), tzn. 0 nebo 2, desítkový řád musí být větší, než jednotkový, ale 4 nebo menší (kvůli zmenšování zleva). Takže 20, 40, 32, originální koncové dvojčíslí tedy 31, 51 nebo 43.
Koncové 43: Uprostřed 5 nebo 6. 6 vede na jediné 87643 a to nevyhovuje. Takže uprostřed 5 a před ním 87, 86 nebo 76. Stačí vybrat vyhovující.
Koncové 51: Vede jen na pokus 87651 a ten nevyhovuje.
Koncové 31: Prostřední jen 4, 5 nebo 6. 6 vede jen na správné 87631. 5 může mít před sebou 87, 86 nebo 76, stačí vybrat vyhovující. 4 může mít před sebou 87, 86, 85, 76, 75 a 65, stačí vybrat vyhovující.
Uf. Spletl jsem se, nebo to tak může být?
#!/usr/bin/perl -w
my ($C0, $C1, $C2, $C3, $C4, $V);
$C4 = 8;
for ($C4 = 9; --$C4 > 4 {
for ($C3 = $C4; --$C3 > 3 {
for ($C2 = $C3; --$C2 > 2 {
for ($C1 = $C2; --$C1 > 1 {
for ($C0 = $C1; --$C0 > 0 {
$V = $C0 + 10 * $C1 + 100 * $C2 + 1000 * $C3 + 10000 * $C4;
if (!($V % 3) or !($V % 4)) {next;}
if (($V - 11111) % 4 or ($V + 11111) % 3) {next;}
print "$V
";}}}}};
Těchto pár řádků má výsledek hned a rozhodně mi jejich sestavení trvalo kratší dobu, než to analytické zkoumání.
A navíc to přišlo na chybu: číslo 87643, které jsem původně zavrhnul, je správné!
No vidíš ke stejnému výsledku jsem došel naprosto jednoduchým analytickým zkoumáním, které navíc hned z počátku vyloučilo desítky různých kombinací, takže počet kombinací skupin čísel byl menší než 10
První číslo nemůže být 9
Posledni číslo nemůže být 0
Poslední číslo je rovno nebo menší než 4 a je liché tedy 3 a1
Poslední dvě čísla 53 51 43 41 31 21 zmenšené o 11 musí být dělitelné 4 vyhovuje 51 43 31
Čislo 51 první 3 pouze 876 součet zvětšený o 5 je 32 nevyhovuje dělitelnost 3
Číslo 43 prvni 3 876 875 865 součet zvětšený o 5 33 32 31 vyhovuje pouze 876
87643 sestupně součet 28 a liché
98754 součet 33 dělitelné 3
76532 dělitelne 4
Zbývá dodělat kombinaci pro poslední 2 čísla 31
Stačí zkoumat zda třímistne číslo sestavené z čísel 8 7 6 5 4 sestupně je součet čísel dělitelný třemi, protože 4+5=9 a to již je dělitelné 3. Na první pohled vidím 876 součet 21 je dělitelný 3 takže číslo 87631 by mělo vyhovovat. Kontrolovat to nebudu.
Nechce se mi nad tím přemýšlet, ale když vyhovuje 876 tak musí vyhovovat když 3 čísla zmenším každé o 1 a mám 765 tudíž další vyhovující číslo by mělo být 76531
A vlastně 65431 taky
A ještě 864 součet dělitelný 3 takže 86431 Celkem
87643
87631
86431
76531
65431
Zkontroluj si zda vyhovují zadání.
OK, takže tvoje číslo není dělitelné třemi, takže součet jeho číslic také ne. Ale když každou číslici zvětším o 1, pak bude dělitelné třemi. Takže tím vlastně součet číslic zvětším o 5, ten je dělitelný třemi, takže součet číslic původního čísla dává po dělení třemi zbytek 1. Protože číslice jde zvětšovat o 1 a zmenšovat o 1 a stále zůstane pětimístné číslo, tak číslice původního čísla budou od 1 do 8. Pokud prohodím libovolné dvě číslice, číslo se zmenší - to znamená, že číslice původního čísla jsou seřazeny zleva doprava od největší po nejmenší, a žádné dvě číslice nejsou stejné (jinak by se jejich prohozením číslo nezmenšilo).
První číslice musí být aspoň 5, varianta pak je 54321, ale to je dělitelné 3. První číslice je tedy aspoň 6, varianta 65432 je dělitelná 4, 65431 vyhovuje všem podmínkám, 65421 je dělitelné 3, 65321 nevyhovuje (číslo se zmenšenými číslicemi není dělitelné 4), 64321 také nevyhovuje.
Pro případ, že první číslice je 7, máme už více možností. Ale pak se můžeme ještě podívat na poslední dvě číslice. Číslo se zmenšenými číslicemi musí být dělitelné 4, tedy musí být dělitelné 4 jeho poslední dvě číslice. Původní číslo tedy musí končit na 11, 15, 19, 23, 27, 31, 35, 39, 43. Z toho rovnou vyloučíme nevytučněné možžnosti, které nevyhovují podmínce o klesající velikosti číslic. Největší varianta 76543 vyhovuje všem podmínkám. Dále je jediná možnost, že číslo končí na 31. Máme možnosti 76531, 76431, 75431. Vytučněná možnost splňuje zadání.
No a podobně zanalyzujeme možnosti, kde první číslice je 8. Největší možnost 87654 nevyhovuje, poslední číslice ale musí být 31, 43, 51 (stejný argument jako minule). Probereme tyto možnosti a zase ověříme, které vyhovují, pomocí součtu číslic:
87631, 87531, 87431, 86531, 86431, 85431
87643, 87543, 86543
87651
Vytučněné možnosti vyhovují.
Odpověď: Řešením jsou čísla 65431, 76543, 76531, 87631, 86431, 87643.
Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz.
Používáním poradny vyjadřujete souhlas s personifikovanou reklamou, která pomáhá financovat tento server, děkujeme.