eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingProsty generator pseudolosowy 8bit z limitem › Re: Prosty generator pseudolosowy 8bit z limitem
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
    0.net!news.mixmin.net!aioe.org!.POSTED!not-for-mail
    From: "Radoslaw Szwed" <r...@p...fm>
    Newsgroups: pl.comp.programming
    Subject: Re: Prosty generator pseudolosowy 8bit z limitem
    Date: Thu, 30 Nov 2017 07:31:39 +0100
    Organization: Aioe.org NNTP Server
    Lines: 29
    Message-ID: <ovo8li$1sp$1@gioia.aioe.org>
    References: <a...@g...com>
    NNTP-Posting-Host: tfrjE4KTfXrJoxo6YOE9UQ.user.gioia.aioe.org
    Mime-Version: 1.0
    Content-Type: text/plain; format=flowed; charset="UTF-8"; reply-type=original
    Content-Transfer-Encoding: 8bit
    X-Complaints-To: a...@a...org
    X-MSMail-Priority: Normal
    X-Notice: Filtered by postfilter v. 0.8.2
    X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5512
    X-Priority: 3
    X-Newsreader: Microsoft Outlook Express 6.00.2900.5512
    Xref: news-archive.icm.edu.pl pl.comp.programming:211800
    [ ukryj nagłówki ]


    Użytkownik "Adam Klobukowski" <a...@g...com> napisał w wiadomości
    news:aef027f7-2063-41a0-9f50-2136a3fd1032@googlegrou
    ps.com...
    Poszukuję prostego (szybkiego) generatora pseudolosowego liczb 8bitowych z górnym
    limitem, tj. jak bym chciał sobie wylosować liczbę
    z zakresu 0-44. Możecie coś polecić?

    Mały (16 bajtów na x86) szybki generator liczb pseudolosowych generujący wartości
    losowe od 0-255.
    Wprowadzenie limitu chyba nie będzie problemem dlatego go nie uwzględniłem.

    Generowane liczby zależą od wartości początkowej rnd i wartości używanej przy
    rozkazie xor. Dla poniższych ustawień kod generuje 254 różne wartości.
    Żadna z wartości się nie powtórzy dopóki wszystkie nie zostaną wygenerowane.
    Można zamiast $e7 użyć $71, $7f, $e9 dają równie dobre rezultaty.

    Przeniesienie poniższego kodu na Motorolę (Amiga/Atari ST),
    MOS 6502 (Atari 8bit/C64) czy "ARMa" nie powinno stanowić kłopotu.
    W przypadku problemów dołączyłem komentarze.

    rnd db 20 ; wartość początkowa

    mov al, rnd ; załadowanie zmiennej do akumulatora
    sal al, 1 ; przesuniecie bitów w akumulatorze o 1 w lewo najstarszy bit
    wpada do c
    jc pomin ; jeżeli c=1 skocz do pomin
    xor al, $e7 ; suma symetryczna
    pomin:
    mov rnd, al ; akumulator do rnd (wartość pseudolosowa)



Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: