- iPhone topik
- Redmi Note 9 Pro [joyeuse]
- Yettel topik
- Samsung Galaxy A56 - megbízható középszerűség
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Hivatalos a OnePlus 13 startdátuma
- Sony Xperia 1 VII - Látod-e, esteledik
- Samsung Galaxy Watch7 - kötelező kör
- Samsung Galaxy Z Flip5 - ami kint, az van bent
- Telekom mobilszolgáltatások
Hirdetés
Új hozzászólás Aktív témák
-
amargo
addikt
Na de ha megtaláltad, akkor miért nem elég neked csak egy példa a brute force algo
Itt van egy olyan rész, hogy The C code:void BF(char *x, int m, char *y, int n) {
int i, j;
/* Searching */
for (j = 0; j <= n - m; ++j) {
for (i = 0; i < m && x[i] == y[i + j]; ++i);
if (i >= m)
OUTPUT(j);
}
}Ezt most betudom annak, hogy fáradt és megszeppent vagy, én is szoktam ilyen lenni. De legközelebb, ha konkrét linkeket kapsz, nézd is meg.
-
amargo
addikt
válasz
cellpeti #788 üzenetére
Nyers erő.
Azaz, ész nélkül mindent vizsgálunk. Miközben, ha megnézed a linket, rengeteg olyan algoritmus van, ami a szöveget elemezve elég jó szabályokat állít fel.
Tehát vegyük S[1..n] szöveget és M[1..m] mintát.
Akkor a művelet igények, így alakulnak,
BF n*m.
KMP n legjobb és legrosszabb esetben is a szótár felállítása m. Én az érthetősége miatt jobban szeretem ezt, mint a RK-t, igaz az hatékonyabb, mert a mintát nem kell végigolvasnunk.
QS n/m +1RK (Ami még említve lett) n
Viszont itt, ha sok a hamis talált, akkor a BF műveletigényével azonost kapunk. -
amargo
addikt
válasz
Fire/SOUL/CD #784 üzenetére
Hi!
#define REHASH(a, b, h) ((((h) - (a)*d) << 1) + (b))
void KR(char *x, int m, char *y, int n) {
int d, hx, hy, i, j;
/* Preprocessing */
/* computes d = 2^(m-1) with
the left-shift operator */
for (d = i = 1; i < m; ++i)
d = (d<<1);
for (hy = hx = i = 0; i < m; ++i) {
hx = ((hx<<1) + x[i]);
hy = ((hy<<1) + y[i]);
}
/* Searching */
j = 0;
while (j <= n-m) {
if (hx == hy && memcmp(x, y + j, m) == 0)
OUTPUT(j);
hy = REHASH(y[j], y[j + m], hy);
++j;
}
}Igazából viszont nem értem, mivel a linkelt oldalon ott van az algoritmus azt csak implementálni kell. De ezt én is a lentebb linkelt oldalról raktam be.
Bár gondolom rothkrisz nem hiszem, hogy ennyire optimalizált kódot szeretne megírni, ha ilyet akarna, akkor ismerne még pár szóban forgót: Knuth-Morris-Pratt, Quick-Search stb...
Az én javaslatom inkább egy sima Brute force lenne, annak megvalósítás íme:
void BF(char *x, int m, char *y, int n)
{
int i, j;
/* Searching */
for (j = 0; j <= n - m; ++j) {
for (i = 0; i < m && x[i] == y[i + j]; ++i);
if (i >= m)
OUTPUT(j);
}
} -
amargo
addikt
válasz
Fire/SOUL/CD #505 üzenetére
Jogos!
Én csak alakiságot figyeltem. -
amargo
addikt
A moduló jobb erre, de Te ezt kerested:
//------------------------------------------
int rounder(double pix)
{
double egesz = 0, tort = 0;
tort = modf(pix,&egesz);
if(tort >= 0.5)
{
pix = ceil(pix);
}
else if(tort < 0.5)
{
pix = floor(pix);
}
return pix;
}//int rounder
//------------------------------------------Szerk:
Kódba raktam -
amargo
addikt
válasz
Fire/SOUL/CD #462 üzenetére
Hopp most esik le, Te nem is ismered a C# .NET-et.
"hogyan kell Visual C# 2008-ban Console Application-t létrehozni, amiben a PRINTF használható, nem a WRITELINE."
Nos pedig Lortech erre a kérdésedre is válaszolt, csak feltételezte, hogy valamennyire tisztában vagy .NET környzettel.
.NET keretrendszert úgy képzeld el mint egy virtuális fordító gépet(java-ból ismerős lehet).
Bocsánat, de ki kell ugranom, ha visszatértem kifejtem. -
amargo
addikt
No, az a 10ed mp felvillanó ablak volt a kódod, az hogy nem működiik meg elég tágfogalom, mivel a leírtak alapján működik.
Az hogy egy VisualStudio-t nem sikerült felrakni? Miért nem? Hogy csinálod?
Az hogy: "cannot create project" még az is lehet, hogy egészen mást akartál csinálni, mint egy C++-s programot (ott csak a könyvtárakkal tudsz C-t csinálni)..Ha meg sehogysem jön össze ez, akkor is inkább eclipse-t használj, szerintem(bár ott a 3 klikken kívűl kicsit többet kell tudni) vagy codeblocks.
-
amargo
addikt
válasz
[HUN]Zolee #146 üzenetére
cahar *p;
(*p).valami;
helyett elég a
p->valami; -
amargo
addikt
Most vagy én vagyok macisajt vagy.. a többiek nem értettek meg.
Tv ha jól értem az nem világos számodra, mi a fenéért kell a main nak int visszatérési típus, nos én azzal az egyszerű dologgal tudnám magyarázni, hogy bármikor megtud szakítani a futását a programodna.
szerk:
Amint látom doc írta, csak a végén -
amargo
addikt
Én pártolom régebben is volt ilyen, csak elsüppedtek.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- A fociról könnyedén, egy baráti társaságban
- Építő/felújító topik
- Kezdő fotósok digitális fényképei
- Mobilinternet
- Luck Dragon: Asszociációs játék. :)
- Nyaralás topik
- Milyen autót vegyek?
- Milyen belső merevlemezt vegyek?
- Milyen monitort vegyek?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- További aktív témák...
- GYÖNYÖRŰ iPhone 13 mini 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3136, 95% Akkumulátor
- Prémium gépház most fantasztikus áron!
- Akció! Apple MacBook Pro 16 M4 Pro - M4 Pro 24GB 512GB SSD garanciával hibátlan működéssel
- HIBÁTLAN iPhone 14 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3016, 98% Akkumulátor
- Bezámítás! Lenovo ThinkPad X13 Gen 5 üzleti notebook - Ultra 5 135U 16GB DDR5 512GB SSD Intel Win11
Állásajánlatok
Cég: FOTC
Város: Budapest