|
| Random number ? Fra : !G! |
Dato : 03-02-02 20:57 |
|
En lille sjov øvelse, som jeg prøver er som følgende at lave en random
tæller
der vælger tilfældige tal fra en række mellem fx 0 & 10.
Den har jeg lavet, men hvis man vil lave sin egen fx. lotto tæller.
Så skal man jo få programmete til som før at vælke tilfældige tal ud, men
denne
gang skal den jo udlave at vælge det samme tal 2 gange..
Hvordan gøres dette??
Min kode ( i C kode ) til random number er som følger:
!G!
------------------------------------------------------------------klip
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
int rand(void);
int again, choice;
char input[12];
int main()
{
int i;
time_t t;
srand((unsigned) time(&t));
again:
clrscr();
textcolor(WHITE);
cprintf("Random 10 numbers between 0 & 10:\r\n\n");
for (i=0; i < 10; i++)
{
textcolor(LIGHTBLUE);
cprintf("Random number:%*s",4,"");
textcolor(YELLOW);
cprintf("%d\r\n",random(11));
}
textcolor(LIGHTRED);
cprintf ("\n\nWanna try again? - Hit 1 for go again or any other button
to quit%*s",3,""),
fgets(input,10,stdin);
choice = atoi(input);
switch (choice)
{
case 1:
goto again;
default:
return 0;
}
}
| |
Peder Skyt, Z=nospam (04-02-2002)
| Kommentar Fra : Peder Skyt, Z=nospam |
Dato : 04-02-02 00:02 |
|
On Sun, 3 Feb 2002 20:57:26 +0100, "!G!" <gugge@email.dk> wrote:
>undlave at vælge det samme tal 2 gange..
>Hvordan gøres dette??
Lav en liste af structs, hver indeholdende én valgmulighed + ét
tilfældigt tal. Sorter listen på det tilfældige tal. Tag det ønskede
antal valg fra den den ene ende af den sorterede liste.
| |
Klaus Hebsgaard (04-02-2002)
| Kommentar Fra : Klaus Hebsgaard |
Dato : 04-02-02 10:22 |
|
"Peder Skyt, Z=nospam" <pesky@pc.dkZ> wrote in message
news:c2gr5ugagrql1iec0ec6etnd57o04ignr7@4ax.com...
> On Sun, 3 Feb 2002 20:57:26 +0100, "!G!" <gugge@email.dk> wrote:
>
> >undlave at vælge det samme tal 2 gange..
> >Hvordan gøres dette??
>
> Lav en liste af structs, hver indeholdende én valgmulighed + ét
> tilfældigt tal. Sorter listen på det tilfældige tal. Tag det ønskede
> antal valg fra den den ene ende af den sorterede liste.
>
Jeg har en søn på 2½, han er ret god til at tælle random mellem 1 og 10,
bare sig til hvis du skal bruge nogle random tal.
MVH
Klaus
| |
!G! (04-02-2002)
| Kommentar Fra : !G! |
Dato : 04-02-02 20:07 |
|
Det kan også laves som følger, dynamisk array....
!G!
int *dynamicarray = NULL;
int dynamicstack (int number)
{
int i;
if (dynamicarray)
{ free (dynamicarray); }
dynamicarray = malloc (sizeof (int) * number);
for (i = 0; i < number; i++)
{ dynamicarray[i] = i; }
for (i = number-1; i >= 0; i--)
{ int index = random(i);
int temp;
temp = dynamicarray[i];
dynamicarray[i] = dynamicarray[index];
dynamicarray[index] = temp;
}
for (i = 0; i < number; i++)
{ printf("%d\n", dynamicarray[i]); }
return 0;
}
int main()
{ dynamicstack (15);
getch();
return 0;
}
| |
Anders Borum (05-02-2002)
| Kommentar Fra : Anders Borum |
Dato : 05-02-02 01:05 |
|
"!G!" <gugge@email.dk> skrev i en meddelelse
news:EZA78.11287$m6.1290813@news000.worldonline.dk...
> Det kan også laves som følger, dynamisk array....
> !G!
[klip]
> for (i = 0; i < number; i++)
> { dynamicarray[i] = i; }
>
> for (i = number-1; i >= 0; i--)
> { int index = random(i);
>
> int temp;
> temp = dynamicarray[i];
> dynamicarray[i] = dynamicarray[index];
> dynamicarray[index] = temp;
Selve den tilfældige ombytning af din array kan laves let med random_shuffle
fra <algorithm> i STL.
Noget i stil med:
std::random_shuffle(dynamic_array, dynamic_array + number);
[klip]
| |
|
|