Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
B O A R D
   » Board
 » Zadaj pytanie
 » Archiwum
 » Szukaj
 » Stylizacja

 
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
OBECNI NA TPC
 
 » alien1 12:02
 » ReMoS 12:02
 » dugi 12:02
 » KHot 11:50
 » Pio321 11:50
 » hokr 11:44
 » rooter666 11:41
 » matali 11:38
 » esteban 11:26
 » Kool@ 11:26
 » Wojtekar 11:17
 » siwydym 11:11
 » Syzyf 11:07
 » Star Ride 11:04
 » Katoda Lt 11:02
 » Artaa 11:01
 » bajbusek 10:56
 » rainy 10:53
 » ligand17 10:53
 » Irix 10:49

 Dzisiaj przeczytano
 36906 postów,
 wczoraj 25433

 Szybkie ładowanie
 jest:
włączone.

 
ccc
TwojePC.pl © 2001 - 2025
A R C H I W A L N A   W I A D O M O Ś Ć
    

liczby losowe w c++ , Chucky 17/11/04 20:00
w jaki sposob zrealizowac, 'losowanie' licz losowych :) w c++, jet jakas funkcja random, lub rand, ale jak losowac liczby typu float z konretnego przedzialu, np. -1 ... 1
prosilbym o przedstawienie tego w c , z malym opisem - jesli to nie bedzie zbyt duzo linijek :)

pozdro @ll

Corei5 9600K, Z390 PRO, 2x16 Vengeance
3200Mhz, GTX 2060 Super, Seasonic X-650

  1. rand zwraca dodatniego inta jeśli się nie myle , McKania 17/11/04 20:26
    zadaj sobie przedział z jakiego chcesz losować [przez modulo na przykład :), załóżmy od 0 do 200], odejmij od każdej z uzyskanej liczby tyle, coby zeszło w ujemne [w naszym przypadku proponuje odjąć 100 i już mamy przedział od -100 do 100 :)] na koniec dzielisz przez 100

    prosto, tanio, skutecznie

    config: skóra, fura i coreDuo ;)

  2. hmm , akustyk 17/11/04 20:32
    sprobuj tak:



    #include <time.h>

    int main(int argc, char** argv){
    float x=0.0;
    unsigned long MAX = -1;

    srand(time(NULL));
    x= (2*rand() / float(MAX)) - 1;
    };

    MAX to ma byc najwieksza mozliwa liczba long int

    http://akustyk.magma-net.pl

    1. hmm , akustyk 17/11/04 20:33
      jeszcze powinien byc #include <stdlib.h>, zeby rand() i srand() poszly

      http://akustyk.magma-net.pl

    2. cos to robi , Chucky 17/11/04 20:51
      ale sa zbyt male roznice miedzy kolejnymi losowanymi liczbami, zaczynaja sie dopiero w 4 miejscu po przecinku
      potrzebuje czegos co bedzie losowac z przedzialu -1...1
      to mi losuje -1 ... -0.99900, wiec troche maly przedzial :)

      please help, i need it...

      Corei5 9600K, Z390 PRO, 2x16 Vengeance
      3200Mhz, GTX 2060 Super, Seasonic X-650

      1. hmm , akustyk 17/11/04 21:05
        to cos jest nie tak. wez zamiast MAX dziel przez 1e10, bedziesz mial do 10 miejsc po przecinku

        http://akustyk.magma-net.pl

        1. cos jest nadal nie tak... , Chucky 17/11/04 22:33
          ...:(

          Corei5 9600K, Z390 PRO, 2x16 Vengeance
          3200Mhz, GTX 2060 Super, Seasonic X-650

  3. hmm , akustyk 17/11/04 23:01
    zobacz www.cplusplus.com i pogrzeb w necie. musi dzialac. zamiast float wez tez double, zeby byla wieksza dokladnosc

    http://akustyk.magma-net.pl

  4. cos takiego , Chucky 17/11/04 23:45
    #include <time.h>
    #include <stdlib.h>
    #include <iostream>

    using namespace std;


    #include <time.h>

    int main(int argc, char** argv){
    double x=0.0;
    //unsigned long MAX = -1;

    srand(time(NULL));
    for (int i=0;i<=1000;i++)
    {
    x= 2*((2*rand() / 100000.0))-1;
    cout<<x<<"\n";
    }
    system("pause");
    };

    i dziala
    jest w przedziale -1 ... 1 :)
    thx za pomoc

    Corei5 9600K, Z390 PRO, 2x16 Vengeance
    3200Mhz, GTX 2060 Super, Seasonic X-650

    1. hmm , akustyk 17/11/04 23:48
      no ale to ze dziala jeszcze niewiele mowi.

      takie losowanie ma raczej tendencje do wybierania czesciej pewnych fragmentow przedzialu [-1,1] niz innych (czyli inaczej: nie jest to rozklad jednostajny).

      jak sie podzieli przez polowe najwyzszej wartosci typu long, to bedzie lepiej

      http://akustyk.magma-net.pl

      1. tzn? , Chucky 18/11/04 10:22
        gdzie to zmienic?

        Corei5 9600K, Z390 PRO, 2x16 Vengeance
        3200Mhz, GTX 2060 Super, Seasonic X-650

      2. juz doszedlem, co i jak , Chucky 18/11/04 13:52
        thx za pomoc :)

        Corei5 9600K, Z390 PRO, 2x16 Vengeance
        3200Mhz, GTX 2060 Super, Seasonic X-650

  5. to ja wkleje sampla z najlepszego helpa :P , bartek_mi 18/11/04 18:38
    // crt_rand.c
    /* This program seeds the random-number generator
    * with the time, then displays 10 random integers.
    */

    #include <stdlib.h>
    #include <stdio.h>
    #include <time.h>

    int main( void )
    {
    int i;

    /* Seed the random-number generator with current time so that
    * the numbers will be different every time we run.
    */
    srand( (unsigned)time( NULL ) );

    /* Display 10 numbers. */
    for( i = 0; i < 10;i++ )
    printf( " %6d\n", rand() );
    }
    Sample Output
    19430
    28222
    9710
    12070
    7513
    9501
    1767
    26041
    11872
    4097



    by MSDN 2003

    dzisiaj jest jutrzejszym wczoraj

    
All rights reserved ® Copyright and Design 2001-2025, TwojePC.PL