Avatar billede hhdsleizer Nybegynder
01. februar 2004 - 21:48 Der er 7 kommentarer og
1 løsning

tilfældig kommatal?

Hej eksperter...
Jeg skal bruge en funktion der returnere et tilfældigt tal. men med et interval på 0.01 mellem hvert muligt udfald?
Det skal virke i mfc.

Sleizer
Avatar billede arne_v Ekspert
01. februar 2004 - 21:55 #1
0.01 * (rand() % 100)

vil returnere 0.00 .. 0.99
Avatar billede arne_v Ekspert
01. februar 2004 - 21:55 #2
(og virker i enhver C eller C++ compiler)
Avatar billede hhdsleizer Nybegynder
01. februar 2004 - 22:00 #3
findes der en måde at gøre den mere random på? altså så den ikke stiger efter tiden? uden at skulle igennem en masse algoritmer osv da jeg fatter hat af dem:D

Sleizer
Avatar billede arne_v Ekspert
01. februar 2004 - 22:10 #4
Den burde ikke stige med tiden.

#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()
{
  srand(time(NULL));
  for(int i=0;i<10;i++)
  {
      double r = 0.01*(rand()%100);
      cout << r << endl;
  }
  return 0;
}

kørsel 1:


0.85
0.39
0.64
0.8
0.54
0.99
0.01
0.09
0.37
0.12

kørsel 2:


0.34
0.25
0.83
0.82
0.01
0.32
0.19
0.36
0.67
0.27
Avatar billede hhdsleizer Nybegynder
01. februar 2004 - 22:29 #5
hmm nu får jeg også random tal.. mit problem nu er at når jeg kører mit mfc program er det det samme tal der starter hver gang og den samme rækkefølge der efterfølgende kommer...

min kode:

void CButikDlg::OnBnClickedEnDag()
{   
    m_dblRand = 0.01 * (rand() % 200);
    UpdateData(true);
    m_dblPris = 100;
   
    m_dblPris = m_dblPris * m_dblRand;
    UpdateData(false);
}

har included de 2 header du også har men m_dblPris starter altid på 41 når jeg trykker på knappen...?
Avatar billede hhdsleizer Nybegynder
01. februar 2004 - 22:31 #6
meningen med koden er at der er en pris på 100 kroner der stiger/falder mellem 1-100%
Avatar billede arne_v Ekspert
01. februar 2004 - 22:33 #7
Forskellen ligger nok i srand kaldet !

Lig det ind et sted så det kaldes en gang (men kun en gang) i dit program.
Avatar billede hhdsleizer Nybegynder
01. februar 2004 - 22:36 #8
nu virker det sq:D

Takker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester