Ú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!
- EAFC 26
- ZyXEL NAS520 – felhős, kétfiókos NAS
- Intel Core Ultra 3, Core Ultra 5, Ultra 7, Ultra 9 "Arrow Lake" LGA 1851
- Raspberry Pi
- Házimozi belépő szinten
- Samsung Galaxy S25 FE - fenséges, felejthető vagy felesleges?
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Battlefield 2042
- Számtech boltosok memoárjai, azaz amikor kiborulunk...
- Jegeli pénznyelő projektjét az Apple, az okosszemüvegben látják a jövőt
- További aktív témák...
- LG V50
- Eladó Lenovo ThinkPad X1 Carbon Gen 8 prémium üzleti ultrabook, WQHD kijelzővel!
- Eladó HP EliteBook 645 G11 új, dobozos, Ryzen 5, DDR5, LTE képes üzleti laptop!
- Eladó ASUS TUF Gaming F15 (FX507ZU4-LP067W) i7, RTX 4050, gamer laptop!
- Eladó HP Envy x360 15-fe0178ng OLED, RTX 3050, i7-1355U, gyakorlatilag új! 3 órát ment eddig
- Azonnali készpénzes AMD Radeon RX 9000 sorozat videokártya felvásárlás személyesen/csomagküldéssel
- Lenovo ThinkPad dokkolók: USB-C 40A9/ 40AY/ 40AS/ Thunderbolt 3 40AC/ Hybrid USB-C DisplayLink 40AF
- HIBÁTLAN iPhone 15 Pro Max 256GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3494, 91% Akkumulátor
- HIBÁTLAN iPhone 15 Pro Max 256GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3495, 91% Akkumulátor
- PlayStation 5 Slim (lemezes) + kontroller 6 hó garancia, számlával!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest