Zdravím,
nech sa snažím ako chcem, aj tak mi výsledok poslednej operácie v 4. kapitole vychádza 6 a nie 0.1, ako knižnici Pint. Síce možno nesčítava hrušky s jablkami, ale asi v pohode povie, že pomer 1 tony jabĺk a 1 kg jabĺk je 1. (Neotestoval som, možno pri hmotnosti príde na to aká je to blbosť). Odhadujem, ale nemám vyskúšané, že rovnakú blbosť vypočíta aj pri násobení tých dvoch čisel (nie?).
Ale následne tvrdí, že je to bezrozmerné číslo. Ako, je mi jasné, že keď sa to pred výpočtom prehodí na rovnaké jednotky, tak to tá knižnica zvládne, ale po výpočte sa nemá čoho chytiť. Myslím.
Ani sa nechystám inštalovať túto knižnicu. Python nepoužívam. Určite ho použivajú niektoré programy, ktoré používam, ale priamo ho spúšťam len keď to vyžaduje nejaký postup.
Ešte by ma zaujímalo, aký výsledok napíše, keď sa tie dve hodnoty vynásobia. V príklade je len násobenie t1 s t1, teda rovnaká jednotka, ale bolo by zaujímavé čo vytvorí, keď sa vynásobia t1 a t2.
Definovat promenne s velicinou a jednotkou, a pak s tim pocitat, mi vzdy prineslo hromadu problemu a nicemu to nepomohlo.
Je to uzitecne leda tak pro zobrazovani finalnich jednotek, pro nejake formatovani a vypisy, ale nic vic.
Obvykle to zadira na tom ze potrebuju nejakou knihovnu na vypocet neceho (lepsi fourier, spline, fit, cokoliv), a ta knihovna jako vstup bere jen zakladni datove typy. Takze musim pracovat jen s normalnima promennyma.
Coz mi pripomnelo jednu knihovnu na vypocet nejistot. Byla krasna, fungovala skvele na zakladni vypocty typu A+B, ale pouzivala pretezovani vsech datovych typu v matlabu. Coz znamenalo, ze se nedala pouzit jedina externi zkompilovana knihovna nebo nejaky rozsirujici balicek, a taky to vsechny vypocty zpomalilo.
Pokud si neco pocitam sam, tak nejprv sestavim rovnici na papire (ci v nejakem symbolickem programu), a jednotkovou kontrolu musim provest uz v tomto kroku. Pak to strkam do vypocetniho programu. Jestli udelam chybu v rovnici uz na zacatku, tak mi to knihovna, co hlida rozmery jednotek, nejspis nezachrani.
Ale nekomu jinemu to mozna pomuze?
Vnímám to podobně... Ale dovedu si představit situaci, kdy se mi validace jednotek může hodit - například nějaký parser fyzikálních rovnic a podobně, případně obecný „výpočtář“ fyzikálních jevů - zadám hodnoty a jejich jednotky a vyhodí mi to standardizovaný formát jednotky. Například vzdálenost v metrech, čas v minutách a mám rychlost v m/s nebo km/h. Prostě neřeším převody jednotek v kódu, když už to někdo udělal za mne.
Kdyz hlasi nekde pocasi, typicky udavaji rychlost vetru ... v m/s ... a drtiva vetsina lidi si pod tim cislem vubec nedovede predstavit, jak rychly ten vitr tedy bude.
Kdyz se podivas na prenos ze startu muskovo raket, byva rychlost v km/h ... ackoli prave v tomhle oboru jsou m/s naprosty standard. Proc? Protoze to je PR pro masy.
A presne na tyto problemy IMO narazis v situaci, kdy zacnes resit zadavani jednotek. Ve vysledku to vybleje nejake cislo, s nejakou jednotkou, ale lidi stejne opisou to cislo, a jednotku odignorujou. A pak to bude jak v te scene "coze!? most ze se roztahne o 17 metru!?".
"a drtiva vetsina lidi si pod tim cislem vubec nedovede predstavit, jak rychly ten vitr tedy bude"
To platí obecně pro všechny výsledky. Nemá smysl se tím trápit, prostě vám studenti běžně vypočítají průměr vodiče vysokého napětí 1.5km a vzdálenost mezi vodiči 0.2mm. Výpočty s jednotkami má smysl použít ve chvíli, kdy to chcete kontrolovat. Tedy že někde neodečítáte ampéry od voltů a pak že výsledek je ta jednotka, co čekáte. Výpis výsledku je jen třešnička na dortu.
Mne se osvedcilo pouzit podobnou knihovnu s jednotkami na vstupu, lide jsou totiz ruzni, nekdo jde striktne SI, jini maji radi prirozenejsi jednotky atd. Je fajn ze program to za me pohlida a prevede vsechno do jednotek ktere pouzivam ve vypoctech. Do jadra programu s vypocty pak jiz jednotky netaham ze stejnych duvodu jaks popsal ty.
Tak na veliciny mam taky vlastni knihovnu - vzniklo to puvodne z nutnosti prepisu datasheetu soucastek do semanticke reprezentace aby s tim slo pracovat pak nasledne strojove.
Ja si dal vice zalezet na parsovani vstupu a prezentaci vystupu v polidstenem formatu - tj. napr. mam automaticke nalezeni vhodneho prefixu, podle platnych dat, takze zadne 0.000000xyz nebo xyE+-12, ale hezky se SI predponami. Taky to samo zvlada prevody mezi in/mil a mm, takze to ulehcuje dost praci.
Konceptualne je to u me skrze otagovani urcite hodnoty (znalosti) metadaty - v tom mem "CAD" nastroji pak existuji jine tagy treba pro vyvody soucastek, napr. ohledne smeru, uziti, a milionu dalsich atributu, ktere vnasi dalsi hlubsi znalosti do "site".
A pak kdyz se provede spravna semanticka operace napr. mezi necim co bylo zrejme napeti a necim co bylo zrejme odpor, tak si ten system dokaze odvodit zjednodusenou jednotku - zde treba ze se jedna o proud.
Metrické vs. palcové rozměry
Zdroj průse.ů je technolog b1bec, co dá metrickej výkres soustružníkovi u mašiny s palcovejma šroubama. Naopak rozumnej soustružník ví, kolik toho mentálně zvládne a řekne si o takový výkres, aby měl s přepočítáváním co nejmíň práce.
17. 4. 2024, 15:47 editováno autorem komentáře
Nemohu se zbavit dojmu, že tohle prostě patří do kompetence typového systému. No jo, ale on to Python.
Třeba F# má ve standardní knihovně SI jednotky. Takže stačí psát
open FSharp.Data.UnitSystems.SI.UnitSymbols let v = 5<m/s> let t = 10<s> let dist = v * t
a kompilátor i IDE odvodí pomocí typové inference, že dist
má typ int<m>
.
Výhoda pak je, že kompilátor zabráním problémům ještě před spuštěním programu
Ten obrázek je strašný. Holt když je AI nakrmena americkým kýčem, tak z toho pak lezou takovéto šílenosti. Připomíná mi to obrázky jelenů z krámku na Kampě
Viz: https://www.databazeknih.cz/knihy/umeni-a-kyc-44880
Hrusky s jabkama se scitaji celkem bezne ... mam treba sklad. V tom skladu jsou veci. Nektere se vydavaji na kusy, jine na metry, jeste jiny na baliky, dalsi treba na kubiky ...
A ty chces treba vyhodnotit, kolik teda operaci ten sklad dela ... tak to proste vsechno sectes. Jednoduse proto, ze vydat ze zkladu mm sroubecek nebo paletu nebo 10m icko ... trva vlastne stejne dlouho.
Hura, konecne budu moct zahodit Newton-metry a zacit pouzivat feet-pound :-D
Poněkud offtopic a jen pro zajímavost: Počítat s jednotkami uměla kalkulačka HP-50g uvedena na trh někdy v roce 2006. Viz návod https://www.manualslib.com/manual/71280/Hp-Hp-50g.html?page=61 resp. https://www.ele.uri.edu/faculty/vetter/Other-stuff/HP-calculators/HP-50g/Training-modules/Working%20with%20units.pdf Uměla to i HP-49g a nejspíš i jiné.
HP-50g uměla i předpony dle ISO. (Např. k, nebo M a další z té doby, myslím, že ki, Mi a pod. neuměly.)
Me teda u novych energetickych stitku prijde silenejsi, ze to pouziva hodnoceni A-G, stejne jako predchozi, takze spousta lidi ani nezjistila ze se neco vubec zmenilo.
Kdysi udelali chybu, ze nejlepsi spotrebice mely A. Tu se pak snazili odcinit pridavanim +, takze A+, A++. Pak museli udelat nove stitky, a zas ten samy problem.
Ja teda většinou viděl spíš kWh/rok. Což beru jako průměrnou spotřebu, a dobře se to převádí na peníze (pro běžného spotřebitele). Ale taky mě to v první chvíli zarazilo. Kromě toho je ale potřeba znát i max. příkon ve W, kvůli elektroinstalaci.
Co je horší že hodně lidí je schopno napsat, že má něco spotřebu x kilowat za hodinu (nebo rok)