Střídavá čísla jsou čísla, ve kterých se všechny číslice střídají mezi sudými a lichými. Například: 2703 a 7230 jsou střídavá čísla, ale 2730 není „t.
Čísla jsou velmi střídavá když je dvojité číslo také střídavé číslo, například 3816 je velmi střídající se, protože 7632 je také střídavé číslo.
Otázka vám zní: kolik 4 číslic je velmi střídavých čísel? (číslo nemůže začínat jednou nebo více nulami)
Tento problém lze samozřejmě vyřešit programováním, ale lze jej vyřešit i matematicky! Hodně štěstí!
Pozn .: S touto hádankou jsem sám nepřišel, je součástí holandské matematické olympiády, viz toto PDF
Komentáře
Odpověď
Existuje mnoho takových čísel
70
Když číslo zdvojnásobíte, číslice výsledku bude, i když a pouze v případě, že číslice právo neprovádělo.
Proto se $ 2x $ střídá právě tehdy, když číslice $ x $ jsou $ LHLH $, kde $ L \ in \ {0,1,2,3 , 4 \} $ a $ H \ in \ {5,6,7,8,9 \} $.
(Jako vedlejší poznámka to znamená, že pokud se $ x $ velmi střídá, pak $ 2x $ bude stále čtyřciferné číslo, takže $ x < 5000 $ nutně).
Víme, že pokud se $ x $ střídá, když vypadá jako OEOE nebo EOEO. Aby se $ x $ velmi střídalo, musí to být také $ LHLH $, takže počítáme počet způsobů, jak splnit obě tato omezení.
-
OEOE
: Každé liché číslo musí být nízké, což znamená, že každé je $ 1 $ nebo $ 3 $. Každá sudá musí být vysoká, takže je buď $ 6 $, nebo $ 8 $. Pro každou číslici existují dvě možnosti, celkem tedy $ 2 \ cdot2 \ cdot2 \ cdot2 = 16 $ možností.
-
EOEO : Rovnosti jsou nyní nízké (0,2 $ nebo 4 $) a šance jsou vysoké (5,7 $ nebo 9 $). Pro každou číslici existují tři možnosti, kromě toho, že první číslice nemůže být nula, takže existují možnosti $ 2 \ cdot3 \ cdot3 \ cdot3 = 54 $.
Tyto dvě počty se přidají k požadované odpovědi.
Komentáře
- Jsem ' na vašem vysvětlení trochu ztracen . Dostávám se k LHLH, ale po tom možná budu ' m hustý?
- Podle komentářů k OP může být dvojnásobek střídavého čísla více než 4 číslice.
- @GentlePurpleRain Na tom nezáleží '. Pětimístné číslo musí začínat 1, ale jeho poslední číslice musí být sudá, takže to nemůže ' t střídat.
- @f ' ' ano, ale žádné pětimístné číslo stejně neřeší
- @mikeearnest přidal trochu k tvé odpovědi. Pokud se ' Nelíbí se mi to.
Odpověď
Odpověď r je
70
Provedl jsem ruční počítání. Stále se snažím vypracovat matematické řešení.
Komentáře
- Je mi ' líto, ' to není odpověď. Jak jste se dostali k této odpovědi?
- @xander zkontrolovat moji poslední úpravu
- I ' omlouvám se, stále nejsem správná odpověď
- Počkejte, vidím, co jsem udělal špatně, vydržte
- @xander A co teď?
Odpovědět
Sakra, spustil jsem tuto hrubou sílu před odpověďmi a dostal jsem
70
VBA
Lepší logika pro tuto trasu by byla
if (one mod 2 = three mod 2) and (two mod 2 = four mod 2) then if one mod 2 <> two mod 2 then counter increase
Odpověď
Tady jdeme, hrubá síla znovu!
Odpověď je, jak zdůrazňují další odpovědi:
70
Můžete zkontrolovat JSFiddle pro zdrojový kód a úplný seznam čtyřmístných velmi alternativních čísel.
Odpověď
Správná odpověď je:
70
#AnubhavBalodhi, puzzling.stackexchange,26036, 1/2/16 2341 hrs E=["0","2","4","6","8"] O=["1","3","5","7","9"] ans=0 alters=[] def Alt(num): N=str(num) if len(N)<5: #4 digit if (N[0] in E and N[1] in O and N[2] in E and N[3] in O) or (N[0] in O and N[1] in E and N[2] in O and N[3] in E): alters.append(num) else: #5 digit if (N[0] in E and N[1] in O and N[2] in E and N[3] in O and N[4] in E ) or (N[0] in O and N[1] in E and N[2] in O and N[3] in E and N[4] in O): alters.append(num) for num in range(1000,10**5): Alt(num) #print(num) print(len(alters)) for numb in alters: if numb<9999 and numb*2 in alters: #if the number in alternating list is of 4 digits, and its double is also in the list. print(numb) ans+=1 print("ans is %d" %(ans))
1818
, které se zdvojnásobuje na3636
a poté znovu na7272
. Může jich být více, pokud povolíte, aby dvojité a dvojité dvojité bylo 5 číslic …3
,9
,18
,109
,309
,418
,818
,909
,1818
. Z nich jsou pouze9
,109
a909
velmi velmi střídavě very . Jsem ' docela jistý, že ' není možné najít ten, který má ' pět úrovní velmi střídavých.