mboost-dp1

Forkortelse af 5 variabler med primtal?


Gå til bund
Gravatar #1 - Wolly
29. maj 2010 11:58
Jeg har brug for at forkorte nogle variabler, på den hurtigste måde i python.

EKS:

x: kan have 5 tilstande.
y: kan have 4 tilstande.
z: kan have 7 tilstande.
t: kan have 5 tilstande.
s: kan have 3 tilstande.

Jeg skal finde den hurtigste måde at omregne x y z t s til en variable A der er unik for den samlede tilstand. Det er ikke nødvendig at jeg kan komme tilbage til de oprindelige tilstande, bare A har samme resultat hvis xyzts har de samme tilstande.

En måde at gøre det på er ved at tage en Int eller dobbel og tildele alle tilstande en fortløbende numerisk værdi, og hvis de forekommer sætte deres tilhørende bit. Simpelt med formentlig meget langsomt.

En anden måde som jeg tror vil virke, er at tildele alle mulige tilstande fortløbende numerisk værdi, omregne dem til primtal og multiplicere værdierne. EKS:
x = 3
y = 2
z= 1
x kan være 2,3,5,7,11 og er her 5
y kan være 13,17,19,23 og er her 17
z kan være 29,31,37 osv... og er her 29
resultat = 2465
Jeg vil tro at denne metode er langt hurtige end den første, men er meget usikker på om resultatet er unikt.

Er der en venlig sjæl der kan be/afkræfte om metode 2 virker, eller kan give et bedre metode. Hele denne problem stilling er lidt vigtig, da den bliver brugt meget i koden til programmet. Så kan man jo altid diskutere hvor hurtig python er, men alt er relativt :-)
Gravatar #2 - Wolly
29. maj 2010 12:02
DOBBEL POST...

BRUG IKKE DENNE TRÅD
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login