Beh, il random ... aspetta mo'.
Credo che si fa così (uso normalmente un algo fatto da me, che funziona meglio ):
int rnd = (int)(rand() * 52f);
Così includi tutti i numeri da 0 a 51.
Io invece uso:
<pre id=code><font face=courier size= id=code>
inline void __Random(int *lpdwResult)
{
__asm
{
mov edi,lpdwResult
rdtsc ;read timestamp counter (seed in eax:edx)
mov ebx,127773
xor edx,edx
div ebx
mov ecx,eax
mov eax,16807
mul edx
mov edx,ecx
mov ecx,eax
mov eax,2836
mul edx
sub ecx,eax
xor edx,edx
mov eax,ecx
mov [edi],ecx
}
}
</font id=code></pre id=code>
Questo mi da un valore random sicuro (ideale per la crittografia, prendi nota, potrebbe servire in futuro), e quindi posso fare il mod(52) per ottenere 0...51, e tante altre cose, soprattutto è più random di ogni altra funzione, perché usa un dispositivo hardware imprevedibile (la CPU Pentium IV o AMD per la precisione).
Giovanni
---
http://www.y2ksw.com/vbulletin