

Poradňácká hádanka
Poradňácká hádanka
Písmena nahraďte číslicemi:
DOTAZY
DOTAZY
DOTAZY
DOTAZY
DOTAZY
DOTAZY
DOTAZY
DOTAZY
=======
PORADNA
neboli 8x dotazy = poradna
Jestli jsem neudělal botu, tak jsou dvě řešení, kousek od sebe.
Je to obdoba příkladu co jsem kdysi dávno viděl ve VTM:
PSICI+PSICI+PSICI=HAFANI - jedno řešení
Udělal jsem si to pokusně ve Small Basicu, odeslal na jejich sběrnej web,
.
že sem dám odkaz,ale hned se spustilo vykonávání v Silvertentononcu a ucpal mi procesor až k restartu na bedně
HAFANI v PYTHONU:
CtCoPfEg
Ještě přidávám seznam řešení, kde jsou všechny proměnné nenulové :
474811*8=3798488
484811*8=3878488
494811*8=3958488
499811*8=3998488
514821*8=4118568
519821*8=4158568
529821*8=4238568
539821*8=4318568
974871*8=7798968
984871*8=7878968
994871*8=7958968
999871*8=7998968
974622*8=7796976
984622*8=7876976
994622*8=7956976
999622*8=7996976
514816*8=4118528
519816*8=4158528
529816*8=4238528
539816*8=4318528
974866*8=7798928
984866*8=7878928
994866*8=7958928
999866*8=7998928
974617*8=7796936
984617*8=7876936
994617*8=7956936
999617*8=7996936
Tomuhle ale nerozumím.
DOTAZY = první šesticiferné číslo - je tam 8x, takže *8 = PORADNA - 7 místné číslo
Dneska jim to funguje normálně tak dám odkaz:
http://smallbasic.com/smallbasic.com/program/?CRJ4 46
Běží to asi 5 minut.
Vše jsem snad popsal v předešlých dvou příspěvcích. Nesplňuje podmínku, aby hodnoty proměnných byly různé. Řešení, kdy jsou hodnoty proměnných návzajem různé, jsou dvě, viz nahoře.
Proč tam není třeba 474812*8=3798496?
Jsem nějaký namrzlý, ale proč tedy nevyhovuje tohle?
Protože nalevo A=8 , napravo A=6 ( na konci).
Vím, proč vyhovují ty dva jediné správné. Proč ten, co jsem postnul, nemůže být ve skupině "nenulových"?
Zřejmě mi něco těžce uniká, fakt to nemyslím jako provokaci.
Aha, v seznamu jsou výsledky, kdy je respektována neměnnost A. Jaký to má důvod?
Zřejmě veškeré možné výsledky, kde se nevyskytne nula. Nerespektuje to požadavek, že neznámá může nabývat jen jednu hodnotu. Vypadá to, že je těch možností málo, ale asi to bude správně. Nezkoušel jsem to, ale pokud by se ve sčítaném čísle nějaká hodnota změnila jen o jednu (přičemž už nebude číslo v některé z vypsaných možností), ve výsledku se někde objeví nula...
Tak ne, hned první zkouška ukázala, že píšu blbosti.
Jsem z vás v pasti. Vůbec nevím, která bije...
Neboj, nejsi sám
do C prekladaca nech si to strci sam kto chce :) DOba vypoctu bude radovo desatiny sekundy. Doba programovania par minut :)
P.S. mne to vypisalo tieto riesenia
DOTAZY=000000, PORADNA=0000000
DOTAZY=000005, PORADNA=0000040
DOTAZY=000010, PORADNA=0000080
DOTAZY=000254, PORADNA=0002032
DOTAZY=000259, PORADNA=0002072
DOTAZY=005000, PORADNA=0040000
DOTAZY=005005, PORADNA=0040040
DOTAZY=005010, PORADNA=0040080
DOTAZY=005254, PORADNA=0042032
DOTAZY=005259, PORADNA=0042072
DOTAZY=015000, PORADNA=0120000
DOTAZY=015005, PORADNA=0120040
DOTAZY=015010, PORADNA=0120080
DOTAZY=015254, PORADNA=0122032
DOTAZY=015259, PORADNA=0122072
DOTAZY=025000, PORADNA=0200000
DOTAZY=025005, PORADNA=0200040
DOTAZY=025010, PORADNA=0200080
DOTAZY=025254, PORADNA=0202032
DOTAZY=025259, PORADNA=0202072
DOTAZY=460050, PORADNA=3680400
DOTAZY=460055, PORADNA=3680440
DOTAZY=460060, PORADNA=3680480
DOTAZY=470050, PORADNA=3760400
DOTAZY=470055, PORADNA=3760440
DOTAZY=470060, PORADNA=3760480
DOTAZY=474801, PORADNA=3798408
DOTAZY=474806, PORADNA=3798448
DOTAZY=474811, PORADNA=3798488
DOTAZY=480050, PORADNA=3840400
DOTAZY=480055, PORADNA=3840440
DOTAZY=480060, PORADNA=3840480
DOTAZY=484801, PORADNA=3878408
DOTAZY=484806, PORADNA=3878448
DOTAZY=484811, PORADNA=3878488
DOTAZY=485050, PORADNA=3880400
DOTAZY=485055, PORADNA=3880440
DOTAZY=485060, PORADNA=3880480
DOTAZY=490050, PORADNA=3920400
DOTAZY=490055, PORADNA=3920440
DOTAZY=490060, PORADNA=3920480
DOTAZY=494801, PORADNA=3958408
DOTAZY=494806, PORADNA=3958448
DOTAZY=494811, PORADNA=3958488
DOTAZY=495050, PORADNA=3960400
DOTAZY=495055, PORADNA=3960440
DOTAZY=495060, PORADNA=3960480
DOTAZY=499801, PORADNA=3998408
DOTAZY=499806, PORADNA=3998448
DOTAZY=499811, PORADNA=3998488
DOTAZY=500065, PORADNA=4000520
DOTAZY=500070, PORADNA=4000560
DOTAZY=504816, PORADNA=4038528
DOTAZY=504821, PORADNA=4038568
DOTAZY=505065, PORADNA=4040520
DOTAZY=505070, PORADNA=4040560
DOTAZY=509816, PORADNA=4078528
DOTAZY=509821, PORADNA=4078568
DOTAZY=514816, PORADNA=4118528
DOTAZY=514821, PORADNA=4118568
DOTAZY=515065, PORADNA=4120520
DOTAZY=515070, PORADNA=4120560
DOTAZY=519816, PORADNA=4158528
DOTAZY=519821, PORADNA=4158568
DOTAZY=525065, PORADNA=4200520
DOTAZY=525070, PORADNA=4200560
DOTAZY=529816, PORADNA=4238528
DOTAZY=529821, PORADNA=4238568
DOTAZY=539816, PORADNA=4318528
DOTAZY=539821, PORADNA=4318568
DOTAZY=974617, PORADNA=7796936
DOTAZY=974622, PORADNA=7796976
DOTAZY=974866, PORADNA=7798928
DOTAZY=974871, PORADNA=7798968
DOTAZY=984617, PORADNA=7876936
DOTAZY=984622, PORADNA=7876976
DOTAZY=984866, PORADNA=7878928
DOTAZY=984871, PORADNA=7878968
DOTAZY=994617, PORADNA=7956936
DOTAZY=994622, PORADNA=7956976
DOTAZY=994866, PORADNA=7958928
DOTAZY=994871, PORADNA=7958968
DOTAZY=999617, PORADNA=7996936
DOTAZY=999622, PORADNA=7996976
DOTAZY=999866, PORADNA=7998928
DOTAZY=999871, PORADNA=7998968
Asi by si mal zadefinovat ze sa cifry nesmu opakovat, ale to sa mi uz nechce robit :)
Pekné riešenie.
Doplním podmienku, že cifry sa nemôžu opakovať:
Edit: Vypíše to:
Velmi pekne riesenie ;)
Mna nenapadlo ze overit sa to da spocitanim pouzitych cifier, a ine sposoby by boli trochu komplikovane... BTW. ja by som tam dal radsej zatvorky k tomu OR-ovaniu, istota je gulomet (kto si ma pamatat prioritu operatorov :)
Vyzkoušeno:
SiV5DJv2
Hezký, akorát bych to potřeboval trochu okomentovat.(nebo ne, pohledám si to)
---
S tím jsem to sem dával, abych viděl různý možnosti řešení.
kompletny komentar k tomu programu je tu:
alebo http://melkor.dnp.fmph.uniba.sk/~zenis/prirucky/c/ kap03.htm apod
http://en.wikipedia.org/wiki/Operators_in_C_and_C% 2B%2B
A bity a bitove posuny snad vies co su.
Děkuji.
este preistotu ti dam priklad: ked chcem z cisla x=123456
napriklad 3.cifru zprava, tak vydelim (operator delenie /) cislom 100, ziskam 1234 (len cele cislo pretoze oba operatory boli typ int). Potom urobim modulo (zvysok po deleni, operator %) cislom 10, a ziskam cifru 4.
Takze napr. (i/1000)%10 je 4.cifra zprava z cisla v premennej i, alebo i%10 je posledna cifra premennej i, apod.
P.S. tieto operacie a aj bitove operacie su VELMI RYCHLE. Dnesne CPU ich vedia urobit niekolko (aj 2-4) naraz v jednom jadre (paralelizuje si to jadro samo) kazdy takt. takze kludne aj 4*3 miliardy takych operacii za sekundu, kazde jadro. Naproti tomu operacie so stringami apod. su dost neefektivne ptz alokuju a kopiruju pamat atd. kludne aj 10000x pomalsie hlavne vo Windows kde MS alokacia pamate trva celu vecnost
<< je bitovy posun dolava, 1<<0 je 1, 1<<1 je 10 binarne, takze 2. 1<<2 je 100 binarne, takze 4. Atd.
| je operacia bitove OR, takze napr. 100binarne OR 1binarne je 101binarne.
& je operacia bitove AND, da sa pouzit aj na testovanie bitu. Napr. 101binarne AND 100binarne = 100binarne, je nenulove tak to znamena ze 3.bit zprava bol 1.
001binarne AND 100binarne = 0, to znamena ze 3.bit zorava bol 0.
Dík za vyčerpávající výklad.
Řešení jsem upravil pro příklad PSICI+PSICI+PSICI=HAFANI
codepad.org - PSICI+PSICI+PSICI=HAFANI
Trochu je mi divný, že
for (int j = 0; j < 10; ++j) dává stejný čísla jako
for (int j = 0; j < 10; j++) tedy [0..9]
V tom prvním případě bych spíš čekal [1..10]
Programovanie neni o pocitoch ani ocakavaniach ale o absolutne preciznych definiciach a priebehoch.
for(neco1;podmienka;neco2) Command;
je presne a precizne difinovane ako toto:
Z toho obrazka vyplyva napr. aj to ze ak podmienka nevyhovuje hned na zaciatku tak sa nevykonna Command ani raz. A aj to ze je uplne jedno ci napises do neco2 ++ pred alebo po alebo ci tam das i+=1 mozes tam dat dokonca aj rotacie a aj viac veci naraz prekladacu je to uplne fuk on to proste vykona vsetko to co tam nacpes do neco2 v spravnom okamziku.
P.S> vpodstate
for(neco1;podmienka;neco2) Command;
je uplne stejne jak
for(neco1;podmienka;) { Command; neco2; }
aj to druhe je korektne a dovolene :)
P.S.2. rozdiel medzi i++ a ++i by tam bol len vtedy ak by si chcel menit v tom "neco2" viac veci (menit zaroven i a aj nejake ine z), napr. by si tam napisal z = ++i tak by to znamenalo i+=1; z=i. Ak by si napisal z=i++ tak by to znamenalo z=i; i+=1, a to je rozdiel.
Spíš bych doplnil podmínku, že použité vazby číslic s písmeny ve slově DOTAZY se musí
shodovat ve výsledku ve slově PORADNA
D=5, O=0(nula), A=8
Tedy pro ty kteří to v úvodu nepochopili.
Tady jsou další podobné...
hadanky-algebrogram.html
11.htm