- Újabb Samsungok telepíthetik a Galaxy AI-t
- Samsung Galaxy Note20 Ultra - a tollnak nincs ellenfele
- Képeken az egyik kameráját elvesztő Sony Xperia 10 VI
- Samsung Galaxy S24 - nos, Exynos
- Vodafone-ra áttért Digi Mobilosok
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Mindent megtudtunk az új Nokia 3210-ről
- Apple iPhone 15 Pro Max - Attack on Titan
- Egyre közelebb a Poco F6 startja
- iPhone topik
Hirdetés
-
Letartóztatták a bitcoin-Jézust
it Amerikai adókerülés vádjával, Spanyolországban tartóztatták le a bitcoin-Jézusként ismert Roger Vert.
-
Lunar Lander Beyond teszt
gp Nagyon sok évtizeddel az eredeti Lunar Lander megjelenése óta ismét ezen a címen jelent meg Atari logóval egy játék. Vajon mennyit javult a játékdesign a hetvenes évek óta?
-
Képeken az egyik kameráját elvesztő Sony Xperia 10 VI
ma Részletes anyag került fel az internetre a Sony idei középkategóriás telefonjáról, három helyett két hátlapi kamera várható.
-
Mobilarena
Új hozzászólás Aktív témák
-
VladimirR
nagyúr
válasz Cathfaern #335 üzenetére
tehat a ciklus az szvsz hatultesztelo legyen es azt nezze, hogy intervallum alfo, vagy felso korlatja egybeesik-e a szammal
van ugye az intervallumod, amit a ket ''korlatja'' hataroz meg, ha egyik sem esik egybe a szammal, akkor ellenorzod, hogy a max+min/2 az nagyobb, vagy kisebb, mint a szam, s ennek megfeleloen a max, vagy min erteket (az intervallum szele) egyenlove teszed a max+min/2-vel - igy egyre kisebb lesz az intervallum, mig el nem talalod a szamot
es azt hiszem, hogy kettesalapu logaritmus(intervallum hossza) lepesben allapithato meg a szam, de ebben nem vagyok 100%-ig biztos
remelem ki tudsz hamozni valamit abbol, amit ''irtam'' -
Miracle
senior tag
válasz Cathfaern #338 üzenetére
de ne ne ne!
ne hagyd magad meghülyíteni!
neked nem kell logaritmust számotatni, arra semmi szükséged nincs , csak a progmatos(/műinfós? nem hiszem) kollégákból előtört az algoritmusok műveletigényéről tanult anyag , ami (hacsak nem írsz powerappot) annyira nem fontos. A kódoláshoz meg semmi közeértelmező késziszótár :: rekurzió --> lásd : rekurzió
-
faster
nagyúr
válasz Cathfaern #344 üzenetére
Bináris kereséshez nem kell logaritmust számolni, mert azt úgy számolod, hogy az intervallumot felezve közelíted az eredményt, és ehhez max. log2n lépésre van szükséged, de ezt nem kell előre kiszámolni. Te csak szépen közelítesz az eredményhez, majd hopp, megvan. Egyébként úgy, ahogy VladimirR leírta 336-ban:
''van ugye az intervallumod, amit a ket ''korlatja'' hataroz meg, ha egyik sem esik egybe a szammal, akkor ellenorzod, hogy a max+min/2 az nagyobb, vagy kisebb, mint a szam, s ennek megfeleloen a max, vagy min erteket (az intervallum szele) egyenlove teszed a max+min/2-vel - igy egyre kisebb lesz az intervallum, mig el nem talalod a szamot''
[Szerkesztve] -
VladimirR
nagyúr
válasz Cathfaern #344 üzenetére
math.h
egyebkent nem zavar be, igaza van - ha nincs kulon benne a feladatban, hogy szamold ki a lepesek szamat, akkor nincs ra szukseged
egyebkent az ilyen feladatokat a legkonnyebb programozni, hisz az algoritmus ott van elotted (irtad, hogy ''az elvet tudod'' - na ez nem csak az elv, ez maga az algoritmus)
egyebkent miben programozol? (ha jol remlik, akkor te linuxot nyuzols, szoval gondolom valami egyszeru szovegszerkeszto es parancssoros fordito) -csak azert mert pl a borland dos-os ''fejlesztokornyezeteinek'' (bp, bc) igen jo a sugoja, csak ajanlani tudom -
Miracle
senior tag
válasz Cathfaern #344 üzenetére
sorry.
mondjuk így néz ki amit akarsz:
int a[1..100]; /* ebbe a tömbbe eltárolod a számokat, amikben keresni akarsz, persze _növekvő_ sorrendben.*/
struct nincs_meg{};
ekkor a függvény(a pontos a sorok elején csak a tabulálás miatt vannak ott):
int logker(const int[] t, const int b, const int e, const int what)
{
. int temp = (b+e) /2;
. if (t[temp] > what)
. {
. return logker(v, b, temp, what);
. }
. else
. {
. if (v[temp] == what) return temp;
. if (b = e) throw(nincs_meg);
. return logker(v, temp, e, what);
. }
}
ez egy rekurzív megvalósítás, nem garantálom, hogy műxik, nem fordítottam le, de szerintem működni fog. vedd észre, hogy hiába statikus az a tömb mérete, ezt a függvény nem használja ki, bármekkora tömböt átadhatsz neki, csak a 2. és a 3. változó 0, illetve tömbméret-1 legyen. megvalósítható templatekkel is, de nem szeretném bonyolítani. így tudod használni
try
{
logker(a,0,99,40) //a fenti a tömbben keressük a 40 értéket
}
catch(nincs_meg){std :: cout << ''nincs ilyen értékű elem a tömbben\n'';}
remélem érthető(és működik)
a műveletigény azt jelenti, hogy ezzel az algoritmussal ha n hosszú a tömb, akkor legrosszab esetben log_2(n) felső-egész-rész lépésben megtalálod a keresett számot, log2n pedig az a szám, mire 2őt emelve n-et kapunk, így tudod kiszámolni számológéppel: log_2(n) = lg(n) / lg(2) (itt lg tetszőleges logaritmus, amit találsz a számológépeden) megjegyzem, hogy az átlagos műveletigény azt feltételezve, hogy a keresett száém megtalálásának valószínűsége minden rekeszben 1/n log_2(n) felső-egészrész -1
és bocs hogy összezavartalak, remélem kiengeszteltelek..értelmező késziszótár :: rekurzió --> lásd : rekurzió
-
faster
nagyúr
válasz Cathfaern #347 üzenetére
Mintha a zárójelek nem stimmelnének
if (((also_korlat+felso_korlat)/2) < szam)
also_korlat = (also_korlat+felso_korlat)/2;
else felso_korlat = (also_korlat+felso_korlat)/2;
MSVC-vel nincs gond, később, ha már jobban érted a C, c++-t, és a fordítót, ráérsz kipróbálni mondjuk egy DevC-t. -
VladimirR
nagyúr
válasz Cathfaern #347 üzenetére
zarojelezessel vannak gondok (most ezt lehet eltulzom, de en inkabb mindenhova zarojelet rakok mar) - ami biztos rossz, hogy mindket ertekadasodnal egy nyito es ket zaro zarojel szerepel
if ( ( ( also_korlat + felso_korlat ) / 2 ) < szam ) {
also_korlat = ( ( also_korlat + felso_korlat ) / 2 );
} else {
felso_korlat = ( ( also_korlat + felso_korlat ) / 2;
}
szerk.: faster: ez a sebesseg olyok mar idegesito
[Szerkesztve] -
VladimirR
nagyúr
válasz Cathfaern #351 üzenetére
ha jol ertem, akkor neked valami olyasmi kell, hogy nezed a minimalisan szukseges lepesek szamat (log2n) es a tenyleges tippeket es a ketto hanyadosabol hatarozod meg, hogy az illeto ''ugyes'' volt-e
mondjuk ha a hanyados nagyobb, mint egy (vagyis <log2n tippel eltalalta), akkor ugyes, ha a hanyados egyenlo eggyel, akkor elfogadhato (mert ugye kovette az algoritmust, de semmi extrat - pl mazli - nem mutatott fel), ha pedig a hanyados kisbb mint egy, akkor (leven tobb tippje volt, mint ami a megoldashoz szukseges) ejnye-bejnye, mert csak vaktaban lovoldozott (s nagy szamoknal ez eleg gaz lehet, mert pl mig az algoritmust hasznalva ~1 000 000 szambol 20 lepesben megtalalhato a keresett, addig totozva ez igen hosszadalmas es az 1e6 nem is olyan nagy szam) -
-
sztanozs
veterán
válasz Cathfaern #10542 üzenetére
Vélelmezem úgy érti, hogy nincs bizonyítható programozási referenciiája (pl adminként dolgozott eddig).
Nálam is kb ez a helyzet. Ha el akarnék menni fejlesztőnek - kérdéses, hogy felvennének-e nem junior fejlesztői poziba 15 év ITSec és 1 év feljeszői (15 évvel ezelőttről) referenciával.
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Jim Tonic
nagyúr
válasz Cathfaern #10607 üzenetére
Papíron tömb rendezés, meg fejben (papíron) változók állapotának nyilvántartása azért nem anyira...
Itt kissé félreértjük egymást. Egy tömb rendezéshez nem kell sok matek, de azt pl. tudnia kell, hogyan és mikor kell kilépni a ciklusból, és ennél többet szerintem nem szabad kérni papíron, sem matekból. Nekem egyszer kellett ilyet írnom, és teljesen utáltam. Ezzel együtt tesztnek nem rossz, mert fejben kell kódot összerakni. Ezt nehezebb tanulni, mint a debugolást. Szerintem.A többivel viszont egyetértek. Sőt, ha visszaolvasol, én pont inkább azt írtam, amit Te is mondasz, hogy a matek tesztelése szerintem nem a jó irány.
[ Szerkesztve ]
Alcohol & calculus don't mix. Never drink & derive.
-
opr
veterán
válasz Cathfaern #10637 üzenetére
Nem is kell az osszeset, csak valamelyiket.
Egyebkent pont ez a nehez ebben a tipusu interjuban, nem a matek resze.
Ugy ertem, hogy:
30 perced van, ez alatt teljesen meg kell erteni a feladatot, barmint elnezel, cumi van.En elsore pl azt ertettem felre, hogy azt hivja equilibrium pontak, ha az adott elem egyenlo az elotte es utana levok osszegevel. Tudom, hulye hiba, de ez ilyen.
A 30 perc alatt a "Run" paranccsal egy nagyon szimpla tesztet kapsz, tehat matematikailag tudod ellenorizni, viszont:
Amint megnyomod a submit gombot, game over, nincs ujraprobalas. Tehat barmit benezel (ami nyilvan nem a matek lesz), az kemenyen levonodik a vegso eredmenybol, es boven van mit benezni, mint itt a fentebbi kollegak kozul mindenkinek (magamat is beleertve) sikerult is.En a tulcsordulast szivtam be, ami persze azonnal kiderul, megoldani is konnyu, de megis konnyu becumizni, es akkor azonnal elbuksz vagy 30 szazalekot.
"Programozó vagyok. Ez azt jelenti, hogy amit leírok, megtörténik." :D “The only valid measurement of code quality is What-The-F**ks/Minute.” - Robert Martin
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- HiFi műszaki szemmel - sztereó hangrendszerek
- SSD kibeszélő
- Újabb Samsungok telepíthetik a Galaxy AI-t
- Futás, futópályák
- Modern monitorokra köthető 3dfx Voodoo kártya a fészerből
- Politika
- Samsung Galaxy Note20 Ultra - a tollnak nincs ellenfele
- btz: Internet fejlesztés országosan!
- Formula-1
- Képeken az egyik kameráját elvesztő Sony Xperia 10 VI
- További aktív témák...
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest