AMcoder - javascript, python, java, html, php, sql

Կարո՞ղ է drand48()-ը երբևէ վերադարձնել 1-ը:

drand48()-ի ձեռնարկում ասվում է.

drand48() և erand48() ֆունկցիաները վերադարձնում են ոչ բացասական, կրկնակի ճշգրիտ, լողացող կետով արժեքներ, որոնք հավասարաչափ բաշխված են [0.0, 1.0] միջակայքում:

(աղբյուր)

Այսպիսով, պարզապես պարզաբանման համար. Արդյո՞ք սա նշանակում է, որ 1.0-ը կարող է վերադարձվել drand48()-ով: Կամ դա նշանակում է, որ վերադարձի արժեքը կլինի ‹ 1.0:

Ես հարցնում եմ, որովհետև կոպիտ ուժի թեստի դեպքում drand48()-ը երբեք չի վերադարձնում 1.0: Այն հաճախ վերադարձնում է 0, բայց ոչ երբեք 1.0: Այնուամենայնիվ, ինձ համար drand48()-ի ձեռնարկը կարծես ասում է, որ 1.0-ն իսկապես արդյունք է, որը կարող է առաջանալ, չնայած ես գործնականում չեմ կարողացել drand48() վերադարձնել 1.0-ը:

Որևէ մեկը այստեղ, ով կարող է որոշակի լույս սփռել սրա վրա: Արդյո՞ք արդյունքը միշտ կլինի 1.0-ից պակաս, թե՞ կարող է նաև հավասար լինել 1.0-ի:

22.11.2018

  • Հաճախ 0-ը կասկածելի է: 22.11.2018
  • Ի՞նչ փաստաթղթեր եք նայում: Իմ macOS համակարգում drand48man էջն ասում է. «R(n+1)-ի ամբողջական 48 բիթերը բեռնված են վերադարձված արժեքի մանտիսայում, ցուցիչով սահմանված է այնպես, որ արտադրված արժեքները գտնվում են [0.0, 1.0» միջակայքում: »: 22.11.2018
  • բաց խմբի հին էջը drand48-ի համար ունի փակ ընդմիջում: Դա կարող է լինել փաստաթղթերի սխալ: 2018 հրատարակությունը կարծես թե ուղղել է այն: 22.11.2018
  • Հղման համար տես իմ խմբագրումը: 22.11.2018

Պատասխանները:


1

«[0.0, 1.0] ընդմիջումով»: Անվտանգ է ենթադրել միջակայքի մաթեմատիկական նշում: Փակագծերի միջակայքի ծայրերը բացառիկ են, իսկ քառակուսի փակագծերի միջակայքի ծայրերը ներառում են: Այսպիսով, ըստ նշման, վերադարձված արժեքը կարող է լինել 1.0:

Սակայն սա հին տարբերակի փաստաթուղթ է, և ներկայիսները նշում են [0.0, 1.0) որպես միջակայք (ինչը նշանակում է, որ այն չի կարող լինել 1.0):

Այսպիսով, ես հակված կլինեի հավատալ, որ [0.0, 1.0)-ը ճիշտ ճշգրտումն է: (կարող է լինել, որ սահմանումը փոխվել է SUS2-ից, որը 1997 թվականից է, կամ որ դա էջի տառասխալ է, բայց ես դրա վերաբերյալ ոչ մի փորձ չունեմ, ուստի չեմ կշռադատելու)


բիրտ ուժի փորձարկման ժամանակ drand48() կարծես երբեք չի վերադարձնում 1.0: Այն հաճախ վերադարձնում է 0, բայց ոչ երբեք 1.0:

Սա խիստ կասկածելի է թվում: 0.0-ը պետք է ունենա նույն հավանականությունը, որ հայտնվի ցանկացած այլ թվի միջակայքում, որպեսզի «Այն հաճախ վերադարձնում է 0»-ը ճիշտ չթվա: Ստուգեք, որ տպում եք ամբողջական ճշգրտությամբ:

Որպես կողմնակի նշում, հիշեք, որ dran48-ը և ընկերները հնացած են

22.11.2018
  • Այսպիսով, կարո՞ղ ենք ենթադրել, որ առաջին հղումը պարունակում է տառասխալ: Դա կհաստատի իմ դիտարկումները, որ 1.0-ն իսկապես երբեք չի առաջանում: 22.11.2018
  • @Andreas Կարծում եմ՝ այո 22.11.2018
  • @Andreas Քանի որ SUS2-ը 1997 թվականից է, հնարավոր է նաև, որ այդ ժամանակից ի վեր սահմանումը փոխվել է: 22.11.2018
  • Հնարավո՞ր է դա։ Չե՞ն պահանջվում, որ այդ API-ները կայուն լինեն: 22.11.2018
  • @Swordfish ty հղման համար և այո, դա կարող է լինել: Ես բացարձակապես չգիտեմ 22.11.2018
  • @Andreas Հնարավոր է, թե ոչ, դուք հղում եք կատարել շատ հին փաստաթղթի, որն այլևս իրականում տեղին չէ: Դուք կարող եք փորձել գտնել SUS2-ի այլընտրանքային աղբյուր և ստուգել: 22.11.2018
  • @Andreas Ամեն ինչ առնվազն 2001 թվականից ի վեր (POSIX և Linux man pages) հետևողականորեն սահմանում է փակ միջակայքը, ուստի այն շատ նման է SuS2 1997 թվականի փաստաթղթերի սխալի: 22.11.2018
  • Պահանջվում է ում կողմից, @Andreas? Գործնականում չափորոշիչները երբեմն փոխվում են: Սա ներառում է, բայց չի սահմանափակվում դրանով, սխալների ուղղում և բնութագրերի ճշգրտում, որպեսզի համապատասխանի կոնսենսուսի իրական աշխարհի իրականացմանը: 22.11.2018

  • 2

    Դուք նայում եք POSIX-ի շատ հին փաստաթղթերին: POSIX 2017-ը drand48-ի համար ասում է.

    drand48() և erand48() ֆունկցիաները պետք է վերադարձնեն ոչ բացասական, կրկնակի ճշգրիտ, լողացող կետով արժեքներ, որոնք հավասարաչափ բաշխված են [0.0,1.0 միջակայքում):

    Սա նաև համահունչ է Linux մարդու էջերին (որը սովորաբար ներկայացնում է glibc իրականացում):

    Նույնը երևում է նաև POSIX 2001-ում:

    22.11.2018
    Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..