Losowanie z prawdopodobieństwem

Losowanie z prawdopodobieństwem
1
Kopiuj
public class Program
{
    public static void Main()

    {
        var keyManager = new System.Collections.Generic.Dictionary<string, double>();
        keyManager.Add("F3", 0.7);
        keyManager.Add("F4", 0.2);
        keyManager.Add("F5", 0.1);

        var rnd = new System.Random();

        var rndValue = rnd.NextDouble();
        double sum = 0;

        foreach (var key in keyManager.Keys)
        {
            sum += keyManager[key];
            if (sum > rndValue)
            {
                System.Windows.Forms.Clipboard.SetText(key);
                break;
            }
        }
    }
}
ST
  • Rejestracja:prawie 7 lat
  • Ostatnio:7 miesięcy
  • Postów:57
0

Super działa!
Jest Pan Wielki ! :)

A ostatnie pytanie czy można używać np. 0.15 bo rozumiem , że jak podzielę np. na 10 teraz F1 do F10 to wtedy będzie wszędzie 0.1 a czy mogę użyć np. 0.05 ?
Chodzi o to , żeby suma była równa 1 ?

edytowany 1x, ostatnio: Stranek
0

Jesli suma szans będzie wynosic >= 1, to zawsze przynajmniej 1 zostanie wcisniety.
Jesli suma szans bedzie < 1, to moze zdazyc sie tak, ze jakis nie zostanie wcisniety.

Mozna stosowac liczby ulamkowe, wiec 0.15 jak najbardziej jest ok.

ZK
  • Rejestracja:prawie 7 lat
  • Ostatnio:5 miesięcy
  • Postów:273
0

Dokładnie tez bym tak zrobił chociaż nie mam wyższych studiów z matematyki .

0
Zimny Krawiec napisał(a):

Dokładnie tez bym tak zrobił chociaż nie mam wyższych studiów z matematyki .

Dobrze wiedziec :)

ZK
  • Rejestracja:prawie 7 lat
  • Ostatnio:5 miesięcy
  • Postów:273
0

Akurat ta odpowiedź nie była do ciebie ale ok.
Tak się zastanawiam po co komu pseudolosowe liczby o różnym prawdopodobieństwie

ST
  • Rejestracja:prawie 7 lat
  • Ostatnio:7 miesięcy
  • Postów:57
0

Za dużo się zastanawiacie zamiast pomagać.
Pomidor nie pytał tylko pomógł widocznie te losowe liczby były mi do czegoś potrzebne.
Działanie skryptu jest zajebiste i jeszcze raz wielkie dzięki Pomidor !!
Niektórzy chcieli stówę za ten skrypt.

Dlaczego pseudolosowe to taka nazwa?

To jest rotator liczb z % prawdopodobieństwem , tak ?

edytowany 2x, ostatnio: Stranek
fasadin
  • Rejestracja:prawie 14 lat
  • Ostatnio:prawie 3 lata
  • Postów:4882
2

no popatrz, siedziales nad tym 7 godzin i ktos Ci ciagle pomagal... uwazasz ze nie jest to warte 100 zl?

Zeby miec liczbe losowa musisz miec niedetermistyczną zmienna. W programie przewaznie losuje sie na bazie czasu czy jakiegos zbioru danych wiec przewaznie jest determistyczny.

Co to oznacza

Ze jakbym wiedzial dokladnie kiedy uruchamiasz program i jakiego algorytmu pseudolosowego uzywasz to moglbym wylosowac taka sama liczbe za kazdym razem

Jak chcesz w pelni losowa liczbe to musialbys odczytywac np szumy z mikrofonu i na podstawie tego losowac liczby, ale to tez nie jest pelna determistycznosc

edytowany 1x, ostatnio: fasadin
ST
  • Rejestracja:prawie 7 lat
  • Ostatnio:7 miesięcy
  • Postów:57
0

Skrypt raczej nie zajął tutaj nikomu 7 godzin.

Kolega , który pomagał mi wszystko tłumaczył i dlatego tyle wyszło.

Nie twierdzę , że praca programisty nie byłaby tyle warta natomiast jak widać są osoby , które pomogły bezinteresownie i to się ceni.

Wracając do tematu :

https://puu.sh/ARo6W/d7c990fb6c.png

70k razy wyszlo 0.7 nastepnie 20k czyli 0.2 a nastepnie 10k czyli 0.1

Czemu nie jest to losowe skoro nawet % się zgadzają?

edytowany 3x, ostatnio: Stranek
fasadin
kompletnie mylisz pojecia. Chciales gotowca to Ci za gotowca podali konkretna cene. Skoro chciales pomocy i sam to zrobiles to znajda sie osoby chetne do pomocy. Jedno z drugim sie nie wyklucza
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:6 dni
  • Lokalizacja:Wrocław
0

Bo losowość istnieje tylko w naturze, a nie w algorytmach komputerowych.

ST
  • Rejestracja:prawie 7 lat
  • Ostatnio:7 miesięcy
  • Postów:57
0

Natomiat procentowo jakoś to wygląda i działa więc czemu piszecie , że coś jest nie tak ?
Nie chciałem nikogo urazić ogólnie w tym wątku.

W praktyce http://eduinf.waw.pl/inf/utils/010_2010/0213.php ten skypt będzie losował inaczej niż ten co zrobił kolega Pomidor?

edytowany 1x, ostatnio: Stranek
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:6 dni
  • Lokalizacja:Wrocław
0

A ktoś pisze, że coś jest nie tak? To, że te liczby tak się nazywają, to nie znaczy, że coś jest z nimi nie tak.

ST
  • Rejestracja:prawie 7 lat
  • Ostatnio:7 miesięcy
  • Postów:57
0

Kolega wysłał przykład skryptu :

http://eduinf.waw.pl/inf/utils/010_2010/0213.php

Czy on będzie działał inaczej/lepiej niż skrypt Pomidora czy to będzie to samo ?

Przy okazji Wy programiści uważacie , że Wasz czas jest już tak cenny , że głowa mała a to g**no prawda jest tak samo cenny jak budowlańca czy każdego innego a ton wypowiedzi np. teraz w Pana wypowiedziach zazwyczaj świadczy o tym , że czujecie się ważniejsi przez to , że jesteście programistami :)
To tak na marginesie eheh

edytowany 1x, ostatnio: Stranek
WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 13 godzin
  • Postów:5132
0

Mówiąc prosto

w matematyce "zawsze" 2+2 = 4, 3+x=4 da x=1 itd. (informatyka jest gałęzią matematyki) - dla tych samych danych zawsze daje ten sam wynik, więc jak nagle miałyby powstawać inne wyniki?

ST
  • Rejestracja:prawie 7 lat
  • Ostatnio:7 miesięcy
  • Postów:57
0

Reasumując skrypt Pomidora spełnia swoje zadanie i nie ma żadnego problemu ?

ZK
  • Rejestracja:prawie 7 lat
  • Ostatnio:5 miesięcy
  • Postów:273
0

" ##### fasadin napisał(a):

no popatrz, siedziales nad tym 7 godzin i ktos Ci ciagle pomagal... uwazasz ze nie jest to warte 100 zl?

Zeby miec liczbe losowa musisz miec niedetermistyczną zmienna. W programie przewaznie losuje sie na bazie czasu czy jakiegos zbioru danych wiec przewaznie jest determistyczny.

Co to oznacza

Ze jakbym wiedzial dokladnie kiedy uruchamiasz program i jakiego algorytmu pseudolosowego uzywasz to moglbym wylosowac taka sama liczbe za kazdym razem

Jak chcesz w pelni losowa liczbe to musialbys odczytywac np szumy z mikrofonu i na podstawie tego losowac liczby, ale to tez nie jest pelna determistycznosc "
Nie ma czegoś takiego jak w pełni losowa liczba .
Może to wykracza poza zakres informatyki ale w świecie przyrody czy jak to nazwać . nie ma przypadków . Jedynie człowiek jest istotą nieprzewidywalną bo posiada wolną wolę ,

edytowany 2x, ostatnio: Zimny Krawiec

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.