Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Ajatuksia lotosta ja lottorivin arvonnasta

Sivun loppuun

Jere Sumell [23.05.2021 14:31:19]

#

(Mod. siirsi lottorivijoukkojen generointi -keskustelusta sivujuonteen.)

Grez kirjoitti:

Tappiollehan noissa jää tietenkin millä tahansa systeemillä.

Voittoa voi pukata vain jos on tuuria, mutta ei siihen systeemiä tarvitse. Parhaiten voitolle jää jos pelaa yhden rivin ja on niin hyvä tuuri että voittaa ainoana päävoiton.

Avaan nyt sanallisen arkkuni, kun jonkin verran tullut harrastettua tappiollista uhkapelaamista elinaikanani ja jatkuu hamaan loppuun saakka.

On ihan totta, että sama mikä peli on kyseessä ja mitä strategiaa käyttää, niin tuuria vaaditaan, jos pelaa talon säännöillä.

Jonkin verran Veikkauksen Lottoa ja Kenoa ohjelmoinut tuossa ajan kuluksi tutkimusmielessä, jos saisi hilattua oman pelaamisen voittojen todennäköisyyksiä itselle suotuisemmiksi, niin tuolla Grezin mainitsemalla Google-hakusanatermillä "Lottery wheel", mikä strategia tuolla Wikipediassa esitetään, niin olen päätynyt Kenossa, että saa 4-5 oikein 8:sta, kun pelaa 10 numeroa ja hajauttaa ne 20 riviin ja pelaa kaksi satsia niitä ristiin, niin voittaa melko varmasti, joten sekään ole kovinkaan kannattavaa taloudellisesti.

Sekin vielä, kun Lotto-arvonta sentään näytetään televisiosta, ja alkujärjestys palloilla aina eri, ja tuntuu siltä, että arvonta-altaan pyörimisnopeus ja aika on vakio, niin jos poissulkee sen, että lottopallot on eripainoisia, niin alkutilanne, missä järjestyksessä pallot tippuvat arvonta-altaaseen, määrittelee aika pitkälle myös lopputuloksen. Viralliset valvojat itse eivät käsittääkseni saa osallistua peliin, ja he on ne henkilöt, jotka asettavat lottokoneen arvontakuntoon, pallojen lähtöjärjestyksen määrittelijät, niin periaatteessa jos heillä on jotain dataa tuosta arvonta-altaan pyörimisnopeudesta ja ajasta, niin voivat "manipuloida" tulosta, lähtöjärjestyshän on joka kierroksella nimittäin eri. Edes Veikkauksen Lottokaan ole siis satunnainen käsitykseni mukaan, mikä olisi ihan luonnollista ottaen huomioon, että mikään Veikkauksen peli ei toimi käsitykseni mukaan täysin satunnaisesti.

En tiedä Kenon suhteen, kun Veikkaus ei paljasta arvonta-algoritmiä, kun se arvotaan koneellisesti, niin varmaan voisi kuvitella jonkinlaisen evoluutio-algoritmin käyttöä tuossa Keno-arvonnassa. Eniten sain Keno voitttoja 2002/2003, kun Veikkaus lanseerasi pelin, ja arvontoja oli vain yksi päivässä ilta-arvonta, ja arvonta näytettiin televisiosta.

Ruletissakin voi pelata liki tai positiivisella odotusarvolla, oma suosikkini on en nyt muista strategian virallista nimeä, mutta kaksi tusinaa kiinni sivupanoksista, sitten tusinoiden neliöt kahdesta kulmasta kiinni, eli 8/12 numerosta jättää voitolle kierroksen, jos osuu niihin tusinoihin pallo laskeutumaan, mitkä on kiinni sijoittanut.

Vähän odotusarvoa tasottava Ruletissakin on, kun maailmalla nettikasinoissa Age of Gods on tällä hetkellä varmaan tunnetuin progressiivisen jackpotin tarjoava Ruletti, joskin Veikkauksellakin se on tuoteportfoliossa pöytäpeleissä, mutta pääpotti on onnettoman pieni. Bet365:kin poistanut kyseisen ruletin valikoimasta sitten viime siellä pelailukerran jälkeen.

Veikkauksen automaattipelien säännöissä lukee, että progressiivisen jackpotin voittotodennäköisyys kasvaa, mitä suuremmalla kierrospanoksella pelaa, joten voisi kuvitella tuossa AOG-ruletissa jossain kohtaa olla kannattavaa jopa pelata maksimipanoksella 100% -peitolla pöytää, mutta se potti ei juuri yli 40 000 euron juuri koskaan nouse. Olen kerran voittanut tuossa Veikkauksen AOG-ruletissa pienimmän Jackpotin vajaat 180 euroa, kun sijoitin minimipanoksen 0,20 bonusruutuun. Se onkin ainoa Jackpot, minkä olen voittanut netissä tai Helsingin Casinolla, tai Turun Club Vegasissa, mutta ei suurin automaattipelivoittoni elämäni aikana.

Metabolix [23.05.2021 18:57:50]

#

Jere Sumell kirjoitti:

Jonkin verran Veikkauksen Lottoa ja Kenoa ohjelmoinut tuossa ajan kuluksi tutkimusmielessä, jos saisi hilattua oman pelaamisen voittojen todennäköisyyksiä itselle suotuisemmiksi

Asia ei vaadi ohjelmointia vaan on täysin yksiselitteinen jo matemaattisesti. Rivillä on tietyt odotusarvot eri voittoluokkiin, ja niistä voi todeta, paljonko keskimäärin jää tappiolle. Useita rivejä pelaamalla ei voi päästä parempaan tulokseen, koska jokainen rivi on itsenäinen ja niillä ei ole voittojen laskennassa mitään edullista yhteisvaikutusta.

Jere Sumell kirjoitti:

missä järjestyksessä pallot tippuvat arvonta-altaaseen, määrittelee aika pitkälle myös lopputuloksen.

Nyt on jo melkoinen salaliittoteoria. Lottokoneen kokoisessa järjestelmässä on niin monta pientä satunnaistekijää, että ei siitä voi mielekkäästi ennustaa mitään tulosta. Voit kokeilla pienemmässä mittakaavassa: Laita kaksi palloa päällekkäin suoraan putkiloon ja päästä ne putoamaan lattialle. Pysähtyvätkö pallot aina samoihin paikkoihin? Tuskinpa vain. Miten sitten 40 törmäilevää lottopalloa pyörivässä koneessa?

Tällaiset spekulaatiot vakavasti esitettyinä osoittavat lähinnä sen, miksi matemaattisesti tappiollinen peli aina vain pysyy kansan suosiossa. Yritetään kuitenkin täällä käsitellä asiaa analyyttisesti eikä näppituntumalla.

Jere Sumell [24.05.2021 08:25:02]

#

Metabolix kirjoitti:

Nyt on jo melkoinen salaliittoteoria.

En ole mikään suuri salaliittoteorioiden ystävä, vaikka jotain niitä seuraankin ja pohdin välillä maailmanhistorian kirjoihin jäävistä tämän aikamme päivän kuumista kysymyksistä, tai maailmanpoliittisesta päivän keskustelun tilanteesta ja suuntauksista.

Tuo vertaus kahden pallon tiputtamisesta putkeen osoittaakseen satunnaismekanismin, joka mekaanisella lottokoneella arvotaan, sai laajentamaan käsitystäni jonkin verran tuosta väitteestäni tai hypoteesistani, että "pallojen alkutilanne määrittää aika pitkälle Veikkauksen lauantai-loton lopputuloksen.

En vieläkään suostu muuttamaan kantaa, etteiko pallojen alkujärjestyksellä olisi verrattain suurtakin vaikutusta lopputulokseen.

Metabolix kirjoitti:

Asia ei vaadi ohjelmointia vaan on täysin yksiselitteinen jo matemaattisesti.

Niinhän sitä voisi kuvitella. On totta, että vaikka olen saanut älyykkyysosamäärätestissä vähän vajaat 170 pistettä, ja jonkinlaista ohjelmointikoulutusta on, että tekniseltä puolelta jää kiinni ohjelman toteutus, enemmänkin pitäisi opintojen syventymisen kautta ymmärtää teoriaa enemmän, mutta mitä kaikki me olemme luonnostaan niin uteliaita, ja tosiaan Lotto kun tarjoaa pienellä alkupääomasijoituksella mahdollisuuden tienata verrattain suurenkin summan rahaa, rahapelit ovat luonnostaan ihmisen kiinnostuksen kohteena, erityisesti jos on insinooritieteisiin kallistunut maailmankatsomukseltaan mitä itsekin olen vankasti luonnontieteiden maailmankatsomuksen omaava ihminen, vaikka tämä meidän ihmisten elämä nyt pelkkää insinooritiedettäkään ole, eikä tosissaan pelkästään talouselämääkään, niin voisi kuvitella, että minua paljon koulutetummat ja viisaammat ihmiset ovat läpikotaisin kautta modernin mikrotietokoneen historian käyneet kolunneet aika pimeitäkin kolkkia tuosta loton todennäkoisyyden hilaamisesta voiton suhteen itselle suotuisammaksi, ja tiettävästi vielä ole kukaan onnistunut loytämään mitään niin ratkaisevaa, että voittaisi joka arvontakierroksella.

Osittain tuossa oli vastaukseni myos tuohon toteamukseesi, että miksi Loton kaltaiset rahapelit ja muut rahapelit pysyvät ihmisen olemassaolon loppuun saakka suuren mielenkiinnon kohteena.

Sitten taas on mielekkäämpää tutkia ja perehtyä ja etsiä uusia näkokulmia asioihin, joita voi alkuoletuksen mukaan pitää mahdottomina, tai vaikeasti saavutettavissa olevilta, kuin jos ennakkoon itsestään selvyyksiä lähtisi oikeaksi todistamaan. Tosin kaikki on sitäkin tehnyt, esimerkiksi jotain Boolen Algebran totuustaulukoiden tarkistamista, että tosissaan George Boolen lasku- ja liitännäislait todella pitävät paikkansa.

On se hyvä,että on tällaisia Ohjelmointiputkan kaltaisia aktiivisia keskusteluaktiiveja omaavia foorumeita meillä yksinäisillä susilla, jotka voivat omasta luolastaan käsin kirjoittaa omia näkemyksiää turvaten Suomen sananvapauslain mukaiseen toimintaan kuitenkin asialinja muistaen ja kaikkia muita huomioiden ja kunnioittaen.

Metabolix [24.05.2021 14:02:10]

#

Jere Sumell kirjoitti:

meillä yksinäisillä susilla, jotka voivat omasta luolastaan käsin kirjoittaa omia näkemyksiää

Suoraan sanoen toivoisin kyllä, että Ohjelmointiputkassa (ja muuallakin) olisi vähemmän ”yksinäisten sutten” kirjoituksia ”omasta luolasta”. Keskustelu olisi hyödyllisempää, jos ”omien näkemysten” ja arvelujen sijaan esiteltäisiin jotain perusteltua.

Erityisen hälyttävää on, kun sekaan alkaa tulla täysin epäolennaisia tietoja (kuten omat Keno-voitot vuonna 2002) ja itsen korostamista (kuten äo-tulos 170, jolla kuitenkin luulisi pystyvän vähän loogisempaan keskusteluun). Minusta sellaiset jutut pitää jakaa jossain muualla kuin keskustelussa, joka on aloitettu asiallisen kysymyksen selvittämistä varten.

Jere Sumell kirjoitti:

loton todennäkoisyyden hilaamisesta voiton suhteen itselle suotuisammaksi

Voisitko antaa edes yhden esimerkin jostain konkreettisesta ideasta, jolla todennäköisyyttä voisi mahdollisesti parantaa? Tarkoitatko jotain todennäköisyyslaskennalle ennestään tuntematonta matemaattista kikkaa, lottokoneen mekaniikasta löytyvää yllätystä vai esimerkiksi henkilökunnan uhkailua ja kupongin väärennystä? Miten ratkaisu se voisi käytännössä toteutua?

Jos ei ole mitään tarkempaa esittää itsellä tai aiemmassa tutkimuksessa, olisi parasta jättää koko spekulaatiot pois keskustelua sekoittamasta.

Erityisesti, kun kyseessä on tunnettu ongelma ja tässä tapauksessa vielä rahallisesti arvokas ongelma, varmasti asiasta on hyvin kattavasti todellista tietoa ja selvä käsitys, miksi parempaan ei pystytä. Silloin on aika ylimielistä heitellä omia yksityisiä ajatuksia ja implikoida, että niistä voisi löytyä jotain yllättävää uutta, vaikka ei ole esittää mitään perusteluja.

Teuro [24.05.2021 14:29:34]

#

Jere Sumell kirjoitti:

jotka voivat omasta luolastaan käsin kirjoittaa omia näkemyksiää turvaten Suomen sananvapauslain mukaiseen toimintaan

Sananvapaus ei velvoita yksittäistä alustaa julkaisemaan mitään. Sananvapaus takaa vain sen, ettei mikään (julkinen) taho ennalta sensuroi julkaistavaa tekstiä. Keskustelulle alustan tarjoava taho voi sen sijaan mainiosti tarkastaa tekstit ennen julkaisua ja harkintansa mukaan poistaa hyvinkin mielivaltaisesti tekstejä, eivätkä nämä ole sananvapauden vastaisia toimia.

Jere Sumell [24.05.2021 16:32:03]

#

Taitaa olla niin, että kaikki verkkopalvelun julkaisema sisältö on palvelun ylläpitäjän vastuulla, erityisestikään jos nyt ottaa tämän vapaan ja hienon Ohjelmointiputkan keskustelulaudan esimerkkinä, kun täällähän ole mitään vastuunvapautuslauseketta palvelun ylläpitäjän toimesta asetettuna tyyliin "Kaikki sivustolla esitetyt mielipiteet ja kommentit ovat kirjoittajiensa näkemyksiä, eivätkä ne edusta palvelun ylläpitäjän omia mielipiteitä". Ennen tuota, että "palvelu" sanaa voitaisiin käyttää, niin pitäisi olla kirjattuna tekstin alkutaipaleella, että "Ohjelmointiputka, (myöhemmin palvelu)...".

Sekin, mitä täällä on meidän keskusteluaktiivien ja muidenkin julkaisemia koodeja, niin Ohjelmointiputka ei ole määritellyt samaa, mitä esimerkiksi Facebook käyttäjäehdoissa, että kaikki sisältö, mitä käyttäjät tuottavat sivustolle, olisi palvelun ylläpitäjän, eli Ohjelmointiputkan omaisuutta, mikä on hienoa! No, ei mennä nyt Facebookin käyttöehtoihin enempää.

neosofta [24.05.2021 16:34:16]

#

Lotto demokratia (aivan yhtä tyhjän kanssa)

Jere Sumell [24.05.2021 16:39:29]

#

Metabolix kirjoitti:

Erityisen hälyttävää on, kun sekaan alkaa tulla täysin epäolennaisia tietoja (kuten omat Keno-voitot vuonna 2002) ja itsen korostamista (kuten äo-tulos 170, jolla kuitenkin luulisi pystyvän vähän loogisempaan keskusteluun). Minusta sellaiset jutut pitää jakaa jossain muualla kuin keskustelussa, joka on aloitettu asiallisen kysymyksen selvittämistä varten.

No itselläni nyt on pysyvistä väreistä pitävänä netissä ja oikeassa elämässä pitävänä ja palaavista asiakkaista, niin taipumus näihin nettikeskusteluihin tuoda mukaan omasta elämästäni jotain, mikä heijastaa personaallisuudestani, se on tapa tehdä kestävän kehityksen politiikkaa kaikki muita keskusteluun osallistujia ja muitakin ihmisiä kunnioittaen ja muutkin huomoiden.

Nettikeskustelu eroaa siinäkin reaalimaailman kasvotusten tai videoneuvottelun keinoin käytävän etäkeskustelun muodosta siinäkin, että täällähän vastaanottaja näkee pelkän tekstin, ja tästä puuttuu kaikki ilmeet, eleet ja äänenpainot ja tyyli, jolla asia sanotaan, jossa ei viesti mene perille välttämättä samassa tarkoituksessa, missä alkuperäinen kirjoittaja sen on tarkoittanut sanottavaksi. Tällaisessa tekstipohjaisessa usean ihmisen keskustelussahan viestin sisällön tulkinta on täysin viestin vastaanottajan omalla vastuulla, ja tulkintavirheitä sattuu tästä syystä.

En halua tuoda esille mitenkään itseäni korostaen omia ominaisuuksiani, mitä kannatan punavihreästi ihmisten tasa-arvoa, en netissä, enkä oikeassa reaalielämässä.

Mensan älykkyysosamäärätesti mittaa ehkä eniten matemaattista ja loogista päättelykykyä, mitä esimerkiksi jotain luovia ratkaisutaitoja, tai sosiaalista älykkyyttä, tai mistä monet naisetkin voi olla kiinnostunut, niin tunneälykkyyttä. En pidä itseäni millään muotoa älykkäämpänä ihmisenä, kuin kanssaihmistä ensi tilassa, vaikka satuin saamaan hyvät pisteet testissä.

Jere Sumell [24.05.2021 16:46:57]

#

neosofta kirjoitti:

Lotto demokratia (yhtä tyhjän kanssa)

Liitit Lotto ja Demokratia -sanat yhteen. Mielenkiintoista.

Voitko avata tuota linkkaamaasi ohjelmaa, että perustuuko tuo ihan satunnaisluku-generaattoriin tuo rivien generointi, vai mikä tuossa on taustalla?

Joskus vielä siihen aikaan, kun CD - ROM -levylle kannatti kaupallinen sovellus vielä julkaisua varten painaa, niin television ostoskanavalla myytiin "Lottomestari" -CDROMia, joka maksoi muistaakseni 100 markkaa. Isäni tilasi sen, ja ei se satunnaisuutta kummempaa tarjonnut niissä lottorivien arpomisessa, paitsi siinä kykeni painottamaan joitain numeroalueita. Humpuukkia koko Lottomestari.

Ostoskanavalla pyöri myös taloushallinto-ohjelma Passelin mainos: "Kyllä sitä välillä ihmettelee, kuinka sitä on tullut toimeen ennen tätä loistavaa keksintöä." Taisi olla yhtenä vuonna tuo Passelin perustaja aika korkealla verotiedoissa, mutta niin aika on muuttunut, että tietokoneohjelmaa oikein enää television ostoskanavalla varmaan myynti ei lähtisi kovasti raketin lailla nousuun?

Lottoarvonta perustuen puhtaasti satunnaislukugeneraattorin tuottamiin lopputuloksiin on ohjelmointihaasteeltaan alkeet -tasoa, ja nyt osittain omienkin sepustusteni jäljiltä taas tämäkin ketju lähtenyt alkuperäisestä ideasta rönsyilemään, joten jos nyt palataan asiaan, eli lotossa voittamisen todennäköisyyksien parantamiseen. MiniManiLotto.

Jere Sumell [24.05.2021 16:52:35]

#

Tuosta tuli "Lotto Demokratiasta" -vielä mieleen. Jos läpimurto tässä Lotto-tutkimuksessa avautuu vielä jonain päivänä, niin sitten avautuu uusi tutkimushaara koskien

Punavihreää talous-sosialismia - Voittoja kaikille! (Tuulipukukansalla). Suomi nousuun, kun ihmiset innostuvat siinä kohtaa Lottoa pelaamaan, niin valtion kassaan kilahtaa Veikkausvaroja ennätysmäärä.

neosofta [24.05.2021 21:11:03]

#

Jere Sumell kirjoitti:

Voitko avata tuota linkkaamaasi ohjelmaa

Voin, kyseessä ei ole mikään pseudo heurestiikka tahi muu vastaavaa abstraktio... Ekaks, varastin ihan kylmästi AtskaFin'ltä tämän ja kääntelin päässäni tähän:

Imports System
Imports System.Collections.Generic
Imports Microsoft.VisualBasic

Public Class _Default
    Inherits System.Web.UI.Page

    Public Shared s As SortedSet(Of Integer)
    Private executing As Boolean

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        If Not Page.IsPostBack Then
            RadioButtonList1.Items(0).Selected = True
            TextBox1.Attributes.Add("OnFocus", "javascript:doScroll()")
            TextBox1.Enabled = False
        End If

    End Sub

    Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        If Not executing Then

            executing = True
            Dim rivi As String = String.Empty
            s = New SortedSet(Of Integer)()
            Dim icount As Integer
            Dim header As String = String.Empty


            If RadioButtonList1.Items(0).Selected Then
                icount = 4
                header = "Eurojackpot:" & vbCrLf
            ElseIf RadioButtonList1.Items(1).Selected Then
                icount = 6
                header = "Lotto:" & vbCrLf
            ElseIf RadioButtonList1.Items(2).Selected Then
                icount = 6
                header = "Jokeri:" & vbCrLf & "  "
            End If

            rivi += header

            For i As Integer = 0 To icount

                Dim strval As String = 0

                If RadioButtonList1.Items(0).Selected Then
                    strval = (UniqueRand(1, 50)).ToString
                ElseIf RadioButtonList1.Items(1).Selected Then
                    strval = (UniqueRand(1, 40)).ToString
                ElseIf RadioButtonList1.Items(2).Selected Then
                    strval = (UniqueRand(0, 9)).ToString
                End If

                If RadioButtonList1.Items(0).Selected Or RadioButtonList1.Items(1).Selected Then
                    rivi += New String("  ", Math.Abs(Len(strval) - 3))
                End If
                rivi += strval
                If RadioButtonList1.Items(0).Selected Or RadioButtonList1.Items(1).Selected Then
                    If i < icount Then
                        rivi += ", "
                    End If
                End If
            Next i

            If RadioButtonList1.Items(0).Selected Then

                For i As Integer = 0 To 1

                    Dim strval As String = (UniqueRand(1, 10)).ToString
                    If i = 0 Then
                        rivi += "  ja "
                    End If
                    rivi += New String(" ", Math.Abs(Len(strval) - 3))
                    rivi += strval
                    If i = 0 Then
                        rivi += ", "
                    End If

                Next i
            End If
            TextBox1.Enabled = True
            TextBox1.Text += rivi & ControlChars.CrLf & ControlChars.CrLf
            TextBox1.Focus()
            executing = False

        End If

    End Sub

    Public Function UniqueRand(ByVal a As Integer, ByVal b As Integer) As Integer

        Do

            Dim rnd As Integer = RandomNumbers.NextNumber() Mod (b - a) + a

            If Me.RadioButtonList1.Items(0).Selected Or Me.RadioButtonList1.Items(1).Selected Then
                If Not s.Contains(rnd) Then
                    s.Add(rnd)
                    Return rnd
                End If
            Else
                s.Add(rnd)
                Return rnd
            End If

        Loop

    End Function

    Protected Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        TextBox1.Text = ""
        TextBox1.Focus()
        TextBox1.Enabled = False
    End Sub

End Class

Friend Module RandomNumbers

    Private r As System.Random

    Public Function NextNumber() As Integer

        If r Is Nothing Then
            Seed()
        End If

        Return r.Next()

    End Function

    Public Function NextNumber(ByVal ceiling As Integer) As Integer

        If r Is Nothing Then
            Seed()
        End If

        Return r.Next(ceiling)

    End Function

    Public Sub Seed()

        r = New System.Random()

    End Sub

    Public Sub Seed(ByVal seed As Integer)

        r = New System.Random(seed)

    End Sub

End Module

Sen javascriptin saat imppaamalla, niin että tekstiloota toimii kuten halutaan.

Jere Sumell [24.05.2021 21:56:48]

#

neosofta kirjoitti:

Voin, kyseessä ei ole mikään pseudo heurestiikka tahi muu vastaavaa abstraktio... Ekaks, varastin ihan kylmästi AtskaFin'ltä tämän ja kääntelin päässäni tähän:

En ole oikeastaan koskaan tutustunut Visual Basiciin, QBasic oli mielenkiintoiselta tuntuva, kun elämäni ensimmäisessä DOS -PC-tietokoneessani 1995 vuonna löysin sen ala-asteella, ja sitten siinä kohtaa, kun tajusi, että ajettavat EXE on ajan trendi suljettuine käännöstiedostoineen ja ajettavane ohjelmaneen, niin QuickBasic oli sitten QBasicin jatke. Tällä hetkellä Basic ohjelmoijat monet ohjelmoi vielä 64-bittisellä onko se QB64, vai mikä se projekti on, jolla on ihan Steamissa myytävänä oleva ihan järkevän oloinen pelikin kaupan Indie-osastolla.

Nopeasti katsoin tuota, niin tuo satunnaislukugeneraattorin siemenluku muodostetaan matemaattisten operaatioiden kautta ja matemaattisia funktioita käyttävän lausekkeen kanssa. Onko siinä muuta ihmeellisä, että perustasolla se arpoo luvun 1-40 Lotossa, Jokerissa 0-9, ja Eurojaskassa 1-50. Katsoin vain tuon arvonta-osion, enkä kiinnittänyt tuohon koodin osioon mitään huomiota, jossa ohjelmoidaan käyttöliittymä-komponentteja.

Itse olen eniten Javalla tuota Lottoa arponut aluksi aloitin ensin siitä, että saan puhtaasti Java Random -luokalla satunnaisluvun generoitua nextIntillä siemenlukuna 40 +1 sitten sen jälkeen, että tulee väliltä 1-40, ja sitten että ei tule riviin duplikaatteja, jos sattuu Random -ilmentymä antamaan saman luvun, niin while -lauseessa pyörittää uuden luvun asettamista muuttujaan niin kauan, että luku on eri, kuin jo riviin arvottu numero.

Jere Sumell [24.05.2021 22:08:55]

#

Vaikeusaste: Alkeet
Ohjelma - Lottoarvonta
Kuvaus - Yksittäisen Lottorivin arvonta kotimaisen lauantailoton Arvontaan
Kieli - Java (8)

import java.util.Random;

public class Lottoarvonta {

	private static boolean[] lottorivi = new boolean[40];

	public static void arvoNumerot() {
		Random r = new Random();
		int next = r.nextInt(40);
		lottorivi[next] = true;
		for (int x=0;x<7;x++) {
			next = r.nextInt(r.nextInt(lottorivi.length));
			while (lottorivi[next]) {
				next = r.nextInt(r.nextInt(lottorivi.length));
			}
		lottorivi[next] = true;
		}
	}

	public static void tulosta() {
		for (int x=0;x<lottorivi.length;x++) {
			if (lottorivi[x]) {
				System.out.print("" +(x+1) +";");
			}
		}

	}

	public static void main(String[] args) {
		arvoNumerot();
		tulosta();
	}
}

Jere Sumell [24.05.2021 22:14:00]

#

Tuossa nyt se Ground zero -piste, joka on pohjana kaikelle sen jälkeen tulevalle tutkimusperusteiselle Lotto-tutkimukselle, tuo pitää ensin saada kuntoon.

Tuossa nyt arvotaan vain yksi niistä kaikista mahdollisista riveistä, ja tulostetaan selkokielisenä se käyttäjän päätteelle.

Perusta ja taustat pitää olla kunnossa, että voi lähteä komplesisempiin arvonta-algoritmeihin. Tämä koodi nyt tuo mitään uutta kenellekkään, mutta jos nyt tulee joku uusi keltanokka lukemaan tätä ketjua, niin tuossa tuo Lottoarvonnan perusta juuritasolla korkean tason ohjelmointikielellä ohjelmoituna.

neosofta [24.05.2021 22:21:07]

#

Vit*t mistään vaikeusasteista jne. Ulokoasu/Toiminnallisuus, siinä vasta kysymys... kumpikaan ei pärjää mitenkään ilman toistaan, silloin kun tarvitaan graphics & action ja.

Jere Sumell [24.05.2021 22:22:52]

#

Jere Sumell kirjoitti:

(24.05.2021 22:08:55): Vaikeusaste: Alkeet Ohjelma - Lotto­ar­von­ta...

Päätteen tuloste:

4;7;8;11;16;19;23;24;

En ajatellut pelata tuota riviä ensi viikolla, voi olla, että siinä on 7 oikein ja voi olla, että jotain 0-6 väliltäkin. Lisänumeron osumakin on epävarmaa, tosiaan kejun tavoite olisi keskustella voiton todennäköisyyden kasvattamisesta lottoajan kannalta suotuisampaan suuntaan, ja vastuunrajoituslausekkeena todettakoon, että en vastaa tuon tulosteen aiheuttamien rahallisten tappioiden seurauksista, jos joku pelaa tuota riviä, eikä voita.

Jere Sumell [24.05.2021 22:25:51]

#

eihän ulkoasulla ole mitään merkitystä, kun tehdään puhtaasti laboratoriossa tutkimustarkoituksiin ohjelmaa. Tekstituloste tuosta tulee, kun käännät ensin päätteeltä

javac Lottoarvonta.java

ja sitten ajat komentopäätteeltä

java Lottoarvonta

Ulkoasun hiominen ihan turhaa laboratorio-olosuhteissa, kun pelkkä tekstituloste on paras, ja en nyt nähnyt mielenkiintoa kommentoida koodia, kun ihan selkeää ihmisen ymmärrettävää lähdekoodia tuossa on.

Toiminnallisuuden kuvauksena kerroin, että tuo nyt arpoo umpimähkään yhden niistä kaikista mahdollisista lottoriveistä, montako riviä voidaan 40 rivistä muodostaa, eli 1/40 [nCr] 7 Lottorivejä on mahdollista arpoa 1.864356 E+7-kappaletta erilaisia rivejä, ja tuo nyt arpoo yhden satunnaisen rivimahdollisuuden tuosta populaatiosta.

Tietenkin rajoituksena se, että kuinka Javan Random -luokan ilmentymä, kuinka luonnolisesti satunnainen se on, mutta se on kysymys erikseen. Se muuten ei ole täysin satunnainen.

neosofta [24.05.2021 22:29:08]

#

Hae apua!

Metabolix [24.05.2021 22:35:29]

#

Jere Sumell kirjoitti:

tuo pitää ensin saada kuntoon.

Sinäpä sen sanoit. Huomasitko, että arvot 8 numeroa? Ehkä yksi niistä onkin lisänumero, mutta mikä? Ohjelmasi kaatuu usealla ajokerralla. Tiedätkö, mitä tapahtuu tuossa, kun laitat kaksi nextInt-kutsua sisäkkäin? Silloin arvot ensin yhden luvun ja sitten toisen sitä pienemmän luvun, eli pienet luvut painottuvat tuloksissa. Kaatumisen todennäköisyys rivillä on noin 2,5 %, nollan todennäköisyys 10 %, luvun 38 todennäköisyys 0,06 % ja luvun 39 todennäköisyys nolla.

Jere Sumell kirjoitti:

kuinka Javan Random -luokan ilmentymä, kuinka luonnolisesti satunnainen se on, mutta se on kysymys erikseen. Se muuten ei ole täysin satunnainen.

Ihanko totta? En tiedä, mitä tuohon enää sanoisi. Lue nyt edes jotain perustietoa todennäköisyyksistä, Random-luokasta ja satunnaislukugeneraattoreista. Kun satunnaisluvut tuotetaan siemenluvusta algoritmilla, tietenkään lopputulos ei ole ”täysin satunnainen” vaan täysin ennustettava.

Jere Sumell [24.05.2021 22:36:52]

#

Avun hakeminen enemmänkin noita James Potkukelkan heiniä.

Toivoisin, että voitaisiin jatkossakin keskustella ihan normaalin sivistyksen tasolla, ja oltaisiin palsta-aktiivi-vertaiskeskustelijoita täällä Ohjelmointiputkassa.

Se, että tartuin alunperin tähän keskustelusäikeen kommenttirinkiin, niin se on jo jonkinlainen avunhuuto alkuperäisen aiheen tiimoilta, koska olen äärimmäisen huono lottoaja, en voita juuri koskaan lotossa.

Jere Sumell [24.05.2021 22:47:53]

#

public static void arvoNumerot() {
	Random r = new Random();
	int next = r.nextInt(40);
	lottorivi[next] = true;
	for (int x=0;x<6;x++) {
		next = r.nextInt(40);
		while (lottorivi[next] && next > 0) {
			next = r.nextInt(r.nextInt(40)+1);
		}
	lottorivi[next] = true;
	}
}

Joo, siinä tuli Bounds have be positive -IllegalArgumentException -poikkeuksen herja. Nyt arvonta-algoritmi on korjattu.

Nyt vaikka vetäisit Integer.MAX_VALUE -tuohon seuraavaan for-silmukan pienempi kuin 1000 kierrosta -arvoksi, kun lisäät nämä metodit koodiin ja korvaat tuon main-metodin seuraavalla esityksellä, niin nythän ohjelma ei kaadu, vaikka maailman tappiin pyörittäisi arvontaa aina uudestaan ja uudestaan.

public static void nollaa() {
	for (int x=0;x<lottorivi.length;x++) {
		lottorivi[x] = false;
	}
}

public static void main(String[] args) {
	for (int x=0;x<1000;x++) {
		arvoNumerot();
		tulosta();
		nollaa();
	}

Jere Sumell [24.05.2021 22:50:04]

#

Mitä tulee keskusteluun täällä Ohjelmointiputkassa, haluan osallistua niihin, ja lupaan yrittää parantaa tapani lähteä rönsyilemään yksityselämääni liikaa linjoilla. Ollaan kaikki tämän yhteisön aktiiveja ja palstatuttuja, vaikkakin valta-osa ihmisistä täällä te olettekin nimimerkin takana.

Metabolix [24.05.2021 23:10:54]

#

Jere Sumell kirjoitti:

Nyt arvonta-algoritmi on korjattu.

Hienoa, ei kaadu enää. Toisaalta nyt lottonumeroita ei välttämättä tule edes seitsemää, jos nextInt antaa nollan kahdesti peräkkäin. Lisäksi se tasapainotus on edelleen pielessä. Lopuksi ota vielä selvää, mitä tarkoittaa LCG ja miksi se ei ole hyvä valinta lottoarvontaan.

Avausviestissä on jo esitetty koodi, joka luo riittävät lottorivit varmaan voittoon. Silloin yhden lottorivin arpova koodi (joka ei edes toimi oikein) on aikamoinen rimanalitus keskustelussa. Vähän kuin menisit Sibelius-Akatemiaan kertomaan, että osaat soittaa nokkahuilulla ”Ostakaa makkaraa”. Kannattaa miettiä, mihin keskusteluun osallistuu vai onko niin sivussa aiheesta, että tekisi mieluummin uuden keskustelun.

Jere Sumell kirjoitti:

olen äärimmäisen huono lottoaja, en voita juuri koskaan lotossa.

(1) Onko sinulle siis edelleen epäselvä se perusasia, että lotto on arpapeli, jossa ei voi olla varsinaisesti hyvä tai huono?

(2) Jos haluat olla ”hyvä” lotossa, voin myydä sinulle satasella sellaisen 379 rivin kokoelman, jolla saa varmasti vähintään neljä oikein -voiton. Voin myydä useammankin, jos haluat.

jalski [24.05.2021 23:31:09]

#

Jere Sumell kirjoitti:

Itse olen eniten Javalla tuota Lottoa arponut aluksi aloitin ensin siitä, että saan puhtaasti Java Random -luokalla satunnaisluvun generoitua nextIntillä siemenlukuna 40 +1 sitten sen jälkeen, että tulee väliltä 1-40, ja sitten että ei tule riviin duplikaatteja, jos sattuu Random -ilmentymä antamaan saman luvun, niin while -lauseessa pyörittää uuden luvun asettamista muuttujaan niin kauan, että luku on eri, kuin jo riviin arvottu numero.

Jos tarkoitus on vain omaksi iloksi arpoa lottorivi niin eikö olisi yksinkertaisinta vaan laittaa kaikki 40 mahdollista numeroa taulukkoon, sekoittaa taulukko ja ottaa tuosta vaikka seitsemän ensimmäistä numeroa?

Alla 8th ohjelmointikielellä:

' >s 1 40 a:generate

: lottonumerot?  \ -- a
  null rand-pcg-seed
  literal a:shuffle 0 7 a:slice ;

: app:main
  lottonumerot? ", " a:join . cr
  bye ;

neosofta [25.05.2021 08:12:12]

#

Itse en ole pahemmin Java ympyröihin sekaantunut, mitä nyt testimielessä J#:lla jotain vääntänyt.
J# oli Microsoftin yritys kalastella Java-tyyppejä Dot Net ympyröihin, joka kuoli heti miltei alkuunsa.
Ei harmittanut lainkaan syystä, että Java onkin itseasiassa aina oksettanut lähes yhtä paljon kuin PHP.
Eräs tuttava Java-tyyppi Tampereen TietoEVRY:llä päivitteli parisen vuotta sitten, että firmassa ollaan siirtymässä vallan Dot Net ympyröihin, josta hän ei ole juurikaan hajulla. Sanoin, että lataa nyt ihmeessä Visual Studio Community kotikoneellesi ja ala vääntämään C#:lla jatkuvan kaljanjuonnin sijaan, niin huomaat ettei mikään mihinkään ole muuttunut ja säilytät työpaikkasi.

Jere Sumell [25.05.2021 08:55:30]

#

Metabolix kirjoitti:

Hienoa, ei kaadu enää. Toisaalta nyt lottonumeroita ei välttämättä tule edes seitsemää, jos nextInt antaa nollan kahdesti peräkkäin.

Käsittääkseni tuo ei pidä paikkansa, että jos tulee kaksi nollaa peräkkäin. While -silmukan ehtohan tarkistetaan joka kerta uuden satunnaisluvun generoinnin jälkeen, ja jos tuo lottorivi -taulukon alkion 0 arvo on jo true, niin sitten arvotaan niin pitkään uutta numeroa, että se on jokin sellainen, jota ei vielä ole arvottu. Vai olenko opiskellut turhaan.

Metabolix kirjoitti:

(1) Onko sinulle siis edelleen epäselvä se perusasia, että lotto on arpapeli, jossa ei voi olla varsinaisesti hyvä tai huono?

No lähinnä tuo olla "hyvä" tai "huono" lottoaja on enemmänkin humaanimpi lähestymistapa ilmaista asia, että ei voita juuri kummemmin tavallista satunnaispelaajaa useammin Lotossa.

Vaikka aika pitkälle luonnontieteiljän ja insinoorin lähestymistapa on osa identiteettiäni, taipumukseni on sekoittaa ihmisläheisestä lähestymistavasta joukkoon ilmaisuja, koska minulla on myos humaani puoli, kuten meillä kaikilla.

Metabolix kirjoitti:

(2) Jos haluat olla ”hyvä” lotossa, voin myydä sinulle satasella sellaisen 379 rivin kokoelman, jolla saa varmasti vähintään neljä oikein -voiton. Voin myydä useammankin, jos haluat.

Aina avoimena bisnestarjouksille, kiitos tarjouksesta! En kuitenkaan tartu siihen. Mitä systeemisi rivit maksaa, käytän sataseni mielummin keskitasoiseen single malt -mallasviskipulloon ja hyvään kuubalaiseen Cohiba -sikariin, joka on käsityona valmistettu uniikki kappale, ja pelaan lauantaina yhden rivin lottoa sen sijaan, että saisin satasen systeemin oston jälkeen investoida 379 euroa ilman plusnumeroa lottoon, josta voitan minimitakuun 4 oikein, jolla tienaan 10 euroa, jolla ei edes saa eteenpäin investoituna pulloa Koskenkorvaa nykyään.

Tuo kyllä on hyvä bisnesidea tuo lottosysteemien myynti, sama mitä kaikki uhkapeleihin liittyvät vihjepalvelut ja niiden kauppaaminen. Jos luot uskottavat puitteet systeemillesi, hyvän myyntipuheen, ja markkinoit järkevällä tavalla systeemiäsi, niin uskon, että asiakkaita piisaa. Et olisi ainut tässä maailmassa, joka tienaa systeemin myynnillä.

Grez [25.05.2021 09:37:49]

#

Jere Sumell kirjoitti:

public static void arvoNumerot() {
	Random r = new Random();
	int next = r.nextInt(40);
	lottorivi[next] = true;
	for (int x=0;x<6;x++) {
		next = r.nextInt(40);
		while (lottorivi[next] && next > 0) {
			next = r.nextInt(r.nextInt(40)+1);
		}
	lottorivi[next] = true;
	}
}

...

Käsittääkseni tuo ei pidä paikkansa, että jos tulee kaksi nollaa peräkkäin. While -silmukan ehtohan tarkistetaan joka kerta uuden satunnaisluvun generoinnin jälkeen, ja jos tuo lottorivi -taulukon alkion 0 arvo on jo true

Silmukan ehdossa on && next > 0, eli silmukkaa suoritetaan vain jos next on suurempi kuin 0.

Eli jos next ensimmäisellä arpomisella saa nollan, niin silmukkaa ei suoriteta kertaakaan eli lukua ei arvota enää uudelleen vaan käytetään alunperin arvottua nollaa.

Arvottujen nollien ei tarvitse edes olla peräkkäisiä. Jos ylipäätään arvotaan nolla useammin kuin kerran, niin arvottuja numeroita tulee vähemmän kuin 7.


Ylipäätään tuossa algoritmissasi ei ole mitään tarvetta tuolle && next > 0.

Lisäksi tuo nykyinen algoritmisi painottaa pieniä numeroita (koska arvotaan ensin yksi numero ja sitten arvotaan sitä pienempi numero).

Sinänsä toki arvonta-algoritmi olisi helppo korjata, poistamalla sieltä vaan turhat sekoilut:

public static void arvoNumerot() {
	Random r = new Random();
	for (int x=0;x<7;x++) {
		int next = r.nextInt(40);
		while (lottorivi[next]) {
			next = r.nextInt(40);
		}
		lottorivi[next] = true;
	}
}

Jere Sumell [26.05.2021 09:21:13]

#

Kiva Grez, kun korjasit asian! Yhteistyolla hommat sujuu!

Tuo oli tosiaan turha && 0, koska nollakin voi esiintyä rivissä, eli 1, mutta nyt asia on korjattu.

5 minuuttia tuli käytettyä tuohon Lottoarvonta.java -tiedoston luontiin, niin ei kai siinä ajassa mitään puhdasta priimatavaraa sovi odottaa kestävän kehityksen politiikkaa ajavalta punavihreältä sivarilta.

Kiitos vielä kerran Grez,että korjasit tämän ja annoit kommentteja!

neosofta [26.05.2021 11:34:17]

#

Jere Sumell kirjoitti:

eihän ulkoasulla...laboratoriossa...

Lottodemartit (labraversio)

Jere Sumell [26.05.2021 12:23:16]

#

neosofta kirjoitti:

Jere Sumell kirjoitti:

eihän ulkoasulla...laboratoriossa...

Lottodemartit (labraversio)

Viesti meni perille.

Julkaisetko uuden perusteilla olevan Lottodemokraatti-puolueen puolueohjelman myos, olisi kiinnostavaa lukea, miten kyseinen puolue hoitaisi valtion talous/tyollisyys/sosiaali ja terveyspolitiikkaa.

tuo aiemmin tässä ketjussa esittämäni punavihreä talous-sosialismi - Voittoja kaikille (Tuulipukukansalla) sopisi hyvin ehkä talouspoliitikan hoidon ja sen edistämiseen.

Ei sentään nimilistat ole jo puolueella kiertämässä, mitä 5000 nimeä siihen puolueen perustamiseen vaaditaan, vai paljonko se on. Itse olen sitoutunut vasemmistoliiton jäseneksi, joten en ole äkkiseltään tuohon Lottodemareihin loikkaamassa.

Hyvän ja koyhien puolesta kannattaa ajaa asiaa, tosiaan.

Jere Sumell [30.05.2021 09:35:10]

#

Metabolix kirjoitti:

Jere Sumell kirjoitti:

kuinka Javan Random -luokan ilmentymä, kuinka luonnolisesti satunnainen se on, mutta se on kysymys erikseen. Se muuten ei ole täysin satunnainen.

Ihanko totta?

En tiedä, mitä tuohon enää sanoisi.

Mene nyt lukemaan edes jotain alkeita todennäköisyyksistä, Random-luokasta, satunnaislukugeneraattoreista ja Java-ohjelmoinnista ylipäänsä, niin keskusteluun tulee jotain järkeä.

Mitä vastasin StackOverflow:hon tästä Javan Random -luokan luonnollisesta ilmentymästä ihan omalla nimellä siellä olen, niin joku on peukuttanutkin ylösopäin kommenttiani, mitä empiiriseen tutkimushavaintooni perustuen argumentoin, niin Java Random -luokan ilmentymäthän siellä on nextGaussian -metodi, että jos tarpeeksi suuren populaation arvot 0 ja -1 -väliltä arvoja, niin generoitu tulos toteuttaa Gaussin jakauman, normaalijakaumahan sieltä tulee tulokiststa. Sama se tuntuu olevan tuossa nextInt() -metodin osalta, sama mitä siemenlukua käyttää.

Suora linkki:

Suora Linkki Java API -dokumentaation Random - nextGaussian()

Suora linkki myös tuohon omalla nimelläni kommentoimaani Javan Random luokan ilmentymän luonnollisesta jakaumasta.

Suora Linkki Stack Overflow -foorumin vastaukseeni

Mitä pistin eilen tuon rivini vetämään, ja katsoin Suomen lätkämatsin jälkeen arvonnan vielä en ollut sammunut, niin 2 numeroa oikein 7:stä.

Mitä muka toi Java -Lottoarvonta.java -tiedostossa esittämäni algoritmi painottaisi muka pieniä numeroita, niin olen eri mieltä. Eihän se mitenkään painota mitään numeroita, r.nextInt(40) voi antaa pienellä otoskoolla toistokoetta tehtäessä pienempiä numeroita,, mutta pitkällä aikavälillä voi tulla yhtäläsestä pienen jälkeen myös isompi.

Mitä itselläni on aikuiskasvatustiede tässä sivuaineena tekniikan laitoksella maisterin opinnot kesken vielä kiitettävällä opintomenestyksellä tähän asti, niin mitä unelmani on FM-tutkinnon jälkeen sähkö-opin insinöörinä kouluttaa uusia sähkömiehiä omaan ammattiinsa, niin tämä keskustelupalsta on omiaan, missä tässäkin keskustelusäikeessä on insinöörit lotossa, ja moni tekniikan tohtorikin on pähkäillyt ja väännellyt tätä Lottoa.

Metabolix [30.05.2021 10:30:37]

#

Jere, pienten numeroiden painotus tuleekin rivillä

next = r.nextInt(r.nextInt(40)+1);

joka jäi koodiisi vielä, kunnes Grez teki sinulle kokonaan korjatun version. (Vaikea nähdä sitä ”yhteistyöksi”, kuten itse asian muotoilit.)

Jere Sumell kirjoitti:

Mitä vastasin StackOverflow:hon tästä Javan Random -luokan luonnollisesta ilmentymästä

Niin tuohan lähinnä painottaa sitä, että et ole lukenut asiasta etkä oikein ymmärrä Random-luokkaa. Toiset vastaajat ovat kertoneet oikeita asioita entropiasta ja saaneet esim. yli sata peukkua ja sinulla on empiirinen havainto ja olet saanut yhden peukun. Matematiikka ei toimi empiiristen havaintojen pohjalta, matematiikan tunnetuista osista otetaan selvää lukemalla eikä kokeilemalla.

Tiesitkö esim. että kyseinen Random toimii yksinkertaisella LCG-kaavalla, jolla tulokset ovat sataprosenttisesti ennustettavissa ja monenkin testin perusteella epäsatunnaisia? Eli asia ei ole uutinen eikä yllättävä. Generaattorin sisäinen tila on 48-bittinen (kuten linkittämäsi dokumentaatio kertoo), joten tämä rajoittaa, montako eri vaihtoehtoa kahden peräkkäisen luvun arvonta voi tuottaa. Tämä tulee konkreettisesti esiin vaikka nextLong-metodissa, josta dokumentaatiokin varoittaa: "Because class Random uses a seed with only 48 bits, this algorithm will not return all possible long values."

Lisäksi tiesitkö, että jakauma ja satunnaisuus ovat eri asiat? Esimerkiksi äärettömästi samanlaisena toistuvassa jonossa 0, 1, 0, 1 on erittäin tasainen jakauma, vaikka se on selvästi äärimmäisen epäsatunnainen. Ja toisaalta aidosti satunnainen jono voisi selvästi poiketa tasaisesta jakaumasta, koska vaikka tulisi sattumalta peräkkäin miljoona ykköstä, jatkossa edelleen olisi yhtä todennäköistä saada kumpi tahansa, koska satunnaisuuteen ei kuulu muisti tai edellisten tulosten tasapainottaminen.

Jere Sumell kirjoitti:

siellä on nextGaussian -metodi, että jos tarpeeksi suuren populaation arvot 0 ja -1 -väliltä arvoja, niin generoitu tulos toteuttaa Gaussin jakauman, normaalijakaumahan sieltä tulee tulokiststa. Sama se tuntuu olevan tuossa nextInt() -metodin osalta, sama mitä siemenlukua käyttää.

Niin siis nextGaussian nimensä mukaisesti tuottaa kyseiseen jakaumaan sopivia lukuja, ei suinkaan väliltä 0-1 vaan keskiarvolla 0 ja keskihajonnalla 1. Sen sijaan nextInt pyrkii lähinnä tasaiseen jakaumaan.

Se vasta olisikin metkaa, jos lottokoneen pallot noudattaisivat normaalijakaumaa pallon numeron mukaan. Onneksi ei sentään.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta