Hirdetés

Új hozzászólás Aktív témák

  • cucka
    addikt

    i=0.1

    S=0
    while S<=1:
    E=0
    while E<=1:
    M=0
    while M<=1:
    O=0
    while O<=1:
    T=0
    while T<=1:
    if S+E+M+O+T == 1:
    s1=S
    e1=E
    m1=M
    o1=O
    t1=T
    T+=i
    O+=i
    M+=i
    E+=i
    S+=i

    hogy lehetséges, hogy az eredmény s1 = 0.8; e1 = 0.2
    az én logikám szerint s1 = 1.0; többi = 0 lenne a helyes

    ha kérhetem valaki vessen rá egy pillantást, sehogy sem jövök rá :((

    Mivel lebegőpontos számokkal dolgozol, a
    if S+E+M+O+T == 1:
    sorod nem úgy fog működni, ahogy azt elképzeled. Használj fixpontos értékeket (kulcsszó: decimal). Amúgy mi értelme ennek a programnak?

    Amúgy kipróbáltam, a kérdéses belső if feltétele 851 alkalommal fog teljesülni a program futása közben, az s1, e1, stb. értékei minden esetben különbözőek, csak ugye minden alkalommal felül is írod a korábbi értékeket.

Új hozzászólás Aktív témák