[LUGOS-PROG] bijektivna preslikava iz stringa v int

Ales Casar casar at uni-mb.si
Wed Jan 9 16:15:59 CET 2002


On Wed, 9 Jan 2002, [iso-8859-2] Uro=B9 Gaber wrote:

> Lahko se pa spodnjo funckijo malce priredi in potem je vedno razlicna
> cifra...

To vsekakor...

> function genKey(key: string): integer;
> var keyc: integer;
> begin
>   for i:=3D1 to length(key) do
>     keyc:=3Dkeyc+ord(key[i])*i;
>   genKey:=3Dkeyc;
> end;
>
> exampli:
> genKey('ab') --> 293
> genKey('ba') --> 292

Samo tako pa ze ne! Si poskusil izracunati recimo genKey('bb') in
genKey('da')?

Slo bi recimo takole:

function genKey(key: string): integer;
var keyc: integer;
begin
  keyc :=3D 0;  { Spremenljivke je koristno inicializirati pred prvo uporab=
o. }
  for i :=3D 1 to length(key) do
    keyc :=3D 256 * keyc + ord(key[i]);
  genKey :=3D keyc;
end;

Seveda to ne bi slo za kaj posebej dolge stringe.

Ales

--=20
Ales Casar                  | InterNet: Casar at uni-mb.si, A.Casar at ieee.org,
Faculty of EE & CS          |           A.Casar at s-gms.ms.edus.si
University of Maribor       | DECnet:   RCUM::ALES
SLOVENIA                    | WWW:      http://www.el.feri.uni-mb.si/~ales/




More information about the lugos-prog mailing list