English | Magyar
JS ki | CSS ki | Ékezetek ki | HiContrast
Lapozó:  (0 - 1429) 
<== | ==>
Ugrás a végére | Összes megjelenítése | Utolsó oldal
OpenOpera patches | Opera-SSL patches | Opera 12.15 source (Git repository) | Opera 12.15 source (Torrent) | Opera internal pages | Otter Browser Linux x64 - Qt5.15.2/QtWebKit5.602.1 (2025.01.15. 07:58)
OS for MC680x0 | OS for PPC | OS for Sparc64 | besztofbégéaefcé | CSÉNDZSLOG | WebToolz | DDG Shit Filter | Google Shit Filter | Progz | Fast CSS Box | Browser | OS | Agent | Statisztika | BBCode
Monospace font-family: Courier New | Browser default monospace
Email értesítő / Email notification ===> 
Keresés
Σ: 1 post

TCH  (statz) Főfasz
#1, Főfasz (10479)
1919 | #5958 | ^ | Idézet | Thu, 02 Jan 2025 00:56:22 +01
188.143.*.* Linux x86 Opera Classic Hungary *.pool.digikabel.hu
kemi, nézem az RC2.DLL forrását és benne a tábla generálását:
Procedure Gen_Table(KeyVal: Int64);
var
  i: Integer;
  k: Cardinal;
  gb: Byte;
  bTable: Array[0..255] of Boolean;
Begin
  For i := 0 To 255 Do bTable[i] := False;
  RandSeed := Random(KeyVal);
  i := 0;
  Repeat
    k := Random($FFFFFFFF);
    gb := k And 255;
    If NOT bTable[gb] Then Begin
      bTable[gb] := True;
      _table[i] := gb;
      Inc(i);
    End;
  Until i > 255;
End;
Ezt így emelted át az RC3-ba, hogy véletlenszerűen generálja az indexeket és nézi, hogy az az index volt-e már generálva és ha igen, akkor generál másikat? Mert szerintem ez nagyon nem jó így. (Persze jobban tenném, ha csöndben maradnék, mert ez az én saram...de már 21 éve követtem el; még fiatal voltam és kellett a pénz pillanatnyilag jó ötletnek látszott. :P Ja igen, tévedtem: a 2.00-ás verziót is én írtam még meg eredetileg Delphiben (meg is találtam most a forrkódot), de te csináltál belőle C++/Qt5 portot.) Szóval, ez baromi lassan generálódik így le; IMHO jobb lenne, ha ehelyett lenne egy 256 elemű tömb, amiben szépen sorban szerepelnek a számok 0-tól 255-ig és utána csak simán cserélgetve keverné össze őket az algoritmus:
int i;
uint8_t ri, tmp;

for (i = 0; i < 256; ++i)
{
	ri = rng_fuggveny() & 0xff;
	tmp = table[i];
	table[i] = table[ri];
	table[ri] = tmp;
}
Ez sokkal gyorsabb lenne és a hatékonyság szempontjából mindegy, hogy hogy van kialakítva a véletlenszerű sorrend a replacer táblában. Mit szólsz?

Ja, másik kérdés: thread-safe módon csináltad meg, azaz a táblát is beleraktad egy struct-ba, vagy class-ba? Csak mert az eredetiben én sajnos globális változót használtam, ami nem thread-safe, hiszen mindenki ugyanazt a táblát piszkálná...


English | Magyar
JS ki | CSS ki | Ékezetek ki | HiContrast
Lapozó:  (0 - 1429) 
<== | ==>
Ugrás a végére | Összes megjelenítése | Utolsó oldal
OpenOpera patches | Opera-SSL patches | Opera 12.15 source (Git repository) | Opera 12.15 source (Torrent) | Opera internal pages | Otter Browser Linux x64 - Qt5.15.2/QtWebKit5.602.1 (2025.01.15. 07:58)
OS for MC680x0 | OS for PPC | OS for Sparc64 | besztofbégéaefcé | CSÉNDZSLOG | WebToolz | DDG Shit Filter | Google Shit Filter | Progz | Fast CSS Box | Browser | OS | Agent | Statisztika | BBCode
Monospace font-family: Courier New | Browser default monospace
Email értesítő / Email notification ===> 
Keresés

Név: (max 255 byte)

Email: (max 255 byte) Nem kötelező!

Üzenet: (max 65536 kar.) 65536-0=65536




crap_vkn v4.34.0 by TCH
Thx to saxus for the escaped string decoder function (PHP), the realIP function (PHP) & the SQL handle layer (PHP), to thookerov for the int_divide function (PHP), to Jeff Anderson for the getSelText function (JS), to Alex King for the insertAtCursor function (JS), Flood3r for the new CSS styles, Pety for the spamprotection idea and some design and comfort ideas, MaxMind for the IP2Country database, famfamfam for the flags of countries and an unknown PHP programmer for the removeAccents function.



Kecskebaszók ide!