Python scenarijaus trūkumas gali lemti neteisingus rezultatus daugiau nei 100 chemijos publikacijų

Havajų universiteto absolventas rasta problema Python scenarijuje, naudojamame skaičiavimams cheminis poslinkis, kuriuo, atliekant signalų spektrinę analizę metodu, nustatoma tiriamos medžiagos cheminė struktūra branduolinis magnetinis rezonansas. Tikrindamas vieno iš savo profesorių tyrimų rezultatus, magistrantas pastebėjo, kad paleidus scenarijų skirtingose ​​operacinėse sistemose tame pačiame duomenų rinkinyje, išvestis buvo skirtinga.

Pavyzdžiui, kai bandomam duomenų rinkiniui veikia macOS 10.14 ir Ubuntu 16.04, scenarijus išduotas neteisinga reikšmė 172.4 vietoj 173.2. Scenarijus apima apie 1000 kodo eilučių ir chemikų naudojamas nuo 2014 m. Ištyrus kodą paaiškėjo, kad išvestis yra neteisinga dėl skirtumai rūšiuojant failus skirtingose ​​operacinėse sistemose. Scenarijaus autoriai manė, kad funkcija "glob ()" visada pateikia failus, surūšiuotus pagal pavadinimą, o globos dokumentacijoje teigiama, kad išvesties tvarka negarantuojama. Pataisymas buvo pridėti list_of_files.sort() po glob() skambučio.

Python scenarijaus trūkumas gali lemti neteisingus rezultatus daugiau nei 100 chemijos publikacijų

Aptikta problema sukėlė abejonių dėl daugiau nei 100 publikacijų chemijos tema, kurių išvados buvo padarytos remiantis scenarijaus apskaičiuotu cheminiu poslinkiu, teisingumu. Tikslus tyrimų, kuriuose buvo naudojamas scenarijus, skaičius nežinomas, tačiau publikacijos su jo kodu cituojamos 158 straipsniuose. Šių darbų autoriams rekomenduojama įvertinti scenarijaus teisingumą skaičiavimams naudotose operacinėse sistemose ir juos perskaičiuoti, kad būtų įsitikinta, ar apskaičiuotos reikšmės yra teisingos. Incidentas yra puikus pavyzdys, kad ne tik eksperimento kokybė, bet ir gautų duomenų apdorojimas programose, kurios
Tai buvo plačiai naudojama, gali turėti įtakos galutiniam rezultatui.

Šaltinis: opennet.ru

Добавить комментарий