logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak napisać program wypełniający tablicę N unikalnymi losowymi liczbami?

kys_1983 29 Gru 2005 17:56 3896 11
REKLAMA
  • #1 2127238
    kys_1983
    Poziom 11  
    Posty: 7
    Napisz program zapełniający jednowymiarową tablicę o rozmiarze N
    wartościami losowymi, tak aby w tablicy nie było dwóch takich samych
    liczb (każda liczba w tablicy musi mieć inną wartość - losowanie bez
    powtórzeń).
    :?: :?:

    :arrow: Nie powielaj tematu !
    j.


    :arrow: https://www.elektroda.pl/rtvforum/faq.php
  • REKLAMA
  • #2 2127286
    monsinior
    Poziom 17  
    Posty: 162
    Pomógł: 18
    Ocena: 7
    Po pierwsze jaki język c++, delphi, pascal, asm co my wróżki!!!!

    Jak w c++ poszukaj info o funkcji random, rand, randomize
  • #3 2127313
    kys_1983
    Poziom 11  
    Posty: 7
    Sorki wszystkim jezyk pascal. Prosilbym o pomoc jesli da rade:(
  • REKLAMA
  • #4 2127448
    krzychu1818
    Poziom 12  
    Posty: 41
    Pomógł: 1
    Ocena: 2
    Słuchaj ja mam programik on losuje 5 liczb o różnych wartosciach ale zawsze sa te same. czy o to ci chodzi??
  • #5 2127470
    ostrytomasz
    Poziom 25  
    Posty: 496
    Pomógł: 82
    Ocena: 222
    krzychu1818 napisał:
    Słuchaj ja mam programik on losuje 5 liczb o różnych wartosciach ale zawsze sa te same. czy o to ci chodzi??


    Widocznie mechanizm generacji liczb pseudolosowych wymaga inicjalizacji przed losowaniem (randomize() czy cuś w tym stylu w zależności od języka/bibliotek).
  • #6 2127734
    bobbyAIR
    Poziom 20  
    Posty: 267
    Pomógł: 41
    Ocena: 6
    kwestia rowniez kompilatora - w pascalu ( jego podstawowej wersji a nie jakims badzienwym turbo ) nie ma zadnego sposobu generowania liczb losowych. Ale np pod linuxem mozna czytac z systemowego generatora liczb losowych. Zostaje tylko sprawdzenie czy nie ma powturzen. Do tego np kompilator SUN Mickrosystems potrafi przy obecnosci bibliotek C w systemie linkowac je z kodem pascla i wtedy wystarczy w pliku zdeklarowac
    INTEGER RANDOM():INTEGER; EXTERNAL C;

    Ale chyba nie to Cie nteresuje bo pytasz o gotowca. W sumei to pisalem kiedys w pascalu pseudo generator liczb losowych ale jakos lubie jak kazdy sam sie pomeczy bo czegos sie nauczy ;)
  • REKLAMA
  • #7 2127908
    kys_1983
    Poziom 11  
    Posty: 7
    fajnie szkoda tylko ze dla poczatkujacego jest to tak trudne :(. ktos potrafi mi pomoc napisac ten program??
  • REKLAMA
  • #8 2128029
    Marian83
    Poziom 20  
    Posty: 360
    Pomógł: 50
    Ocena: 7
    PROGRAM RANDOM;
    uses
    crt;
    var
    a :char;
    BEGIN
    clrscr;
    randomize;
    repeat
    writeln(random(10));
    a:=readkey; {instrukcja READKEY-wprowadzenie znaku z}
    {klawiatury bez wyprowadzenia go na monitor}
    until (a='N')or(a='n');
    END.

    Dodano po 2 [minuty]:

    http://www.dec.pg.gda.pl/pascal/lekcja06/pascal06.htm
  • #9 2128101
    kys_1983
    Poziom 11  
    Posty: 7
    ta ale czemu wyskakuje mi na ekranie ciagle readkey10??
  • #10 2129072
    fliku
    Poziom 11  
    Posty: 21
    Ocena: 3
    w C :
    struct baza {
    char album[20];
    char imie[20];
    char nazwisko[20];
    char telefon[20];}

    int utworz_baze(struct baza *wsk, int ilosc){
    char bufor[25];
    int i;
    for(i=0;i<ilosc;i++){
    itoa(rand(),bufor,10);
    strcpy(wsk->album,bufor);
    itoa(rand(),bufor,10);
    strcpy(wsk->imie,bufor);
    itoa(rand(),bufor,10);
    strcpy(wsk->nazwisko,bufor);
    itoa(rand(),bufor,10);
    strcpy(wsk->telefon,bufor);
    wsk++;
    }}

    ilość- to ilośc wpisów które chcesz/musisz zrobić,
    pozdrawiam
  • #11 2129148
    lukego
    Poziom 17  
    Posty: 296
    Pomógł: 6
    Ocena: 7
    Jeśli się nie może powtórzyć, to nie jest to losowe ;)
  • #12 2131315
    kys_1983
    Poziom 11  
    Posty: 7
    dzieki wszytkim

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy napisania programu w języku Pascal, który wypełni jednowymiarową tablicę o rozmiarze N unikalnymi, losowymi liczbami bez powtórzeń. Poruszono kwestie wyboru języka programowania oraz problemu generowania liczb pseudolosowych w Pascalu, gdzie standardowa wersja nie posiada wbudowanych funkcji losowych. Zasugerowano inicjalizację generatora liczb pseudolosowych funkcją randomize oraz konieczność sprawdzania unikalności wygenerowanych wartości, np. przez porównywanie z już wylosowanymi liczbami. Podano przykładowy prosty program w Pascalu wykorzystujący randomize i random, jednak bez implementacji eliminacji powtórzeń. Wspomniano także o możliwości korzystania z systemowego generatora liczb losowych w środowiskach Linux oraz o łączeniu kodu Pascal z bibliotekami C w celu uzyskania funkcji losowych. Dyskusja podkreśla trudności początkujących w implementacji takiego programu oraz potrzebę samodzielnego eksperymentowania dla nauki. Pojawiła się także uwaga, że losowanie bez powtórzeń technicznie nie jest w pełni losowe, lecz wymaga kontroli unikalności.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA