Pereiti prie turinio

Kiek svarbi diskrecioji matematika programavime?


Rekomenduojami pranešimai

Kaip tik neseniai turėjau diskusiją šia tema. Asmeniškai man praktikoje dažnai praverčia diskrečiosios matematikos bajeriai. Iš visų matematikos rūšių, kurių mokinausi, diskrečioji, turbūt, programavimo praktikoje labiausiai gelbsti. Pradedant siaubingų if'ų skaidymų, jų paneigimų ir pan. (matematinė logika), duomenų bazių veikimo principais (aibių teorija) iki įvairių duomenų kodavimo algoritmų.

 

Todėl - taip, jeigu yra galimybė ir noras, tai būtinai pasidomėk ir pasimokyk, nes tai labai labai glaudžiai susiję su šiuolaikinėmis technologijomis. MIF'e labai neįdomiai šias paskaitas vedė dėstytojas Skersys, bet jo konspektai yra geri http://www.mif.vu.lt/~skersys/14r/dm/konsp.htm

Redagavo vitalikaz
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kaip tik neseniai turėjau diskusiją šia tema. Asmeniškai man praktikoje dažnai praverčia diskrečiosios matematikos bajeriai. Iš visų matematikos rūšių, kurių mokinausi, diskrečioji, turbūt, programavimo praktikoje labiausiai gelbsti. Pradedant siaubingų if'ų skaidymų, jų paneigimų ir pan., baigiant duomenų bazių veikimo principais :)

Gal turi pasiulyti is kokiu saltiniu mokytis?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Šiaip iš visų galimų matematikos šakų diskrečioji matematika yra pati svarbiausia kompiuterijoje, nes kompiuteriuose viskas yra diskretu (net ir tolydus dydžiai, kaip realieji skaičiai, yra suapvalinami iki diskretaus dydžio, paliekant kažkiek skaičių po kablelio).

 

Kiek užmečiau akį į Wikipedia'os puslapį, tai sąvoka „diskrečioji matematika“ apima labai daug sričių. Turbūt reikėtų pasidomėti apie logiką (būlio algebra), grafus, aibes, skaičių teoriją (modulių aritmetika, pirminiai skaičiai), gal dar kombinatoriką.

 

Labai svarbu yra grafai, nes pakankamai daug kompiuterijoje ir realiame pasaulyje kylančių problemų galima suprojektuoti į grafų teorijos uždavinį.

 

Geras įvadas į grafus ir skaičių teoriją yra knyga „Informatikos olimpiados: algoritmai ir taikymo pavyzdžiai“.

Redagavo wi_lius
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Šiaip iš visų galimų matematikos šakų diskrečioji matematika yra pati svarbiausia kompiuterijoje, nes kompiuteriuose viskas yra diskretu (net ir tolydus dydžiai, kaip realieji skaičiai, yra suapvalinami iki diskretaus dydžio, paliekant kažkiek skaičių po kablelio).

/face######ingpalm

Baik tu vienąkart su savo teorija.

 

Dirbsi su bankinėm sistemom - prieš keliasdešimt metų galiojančius bankinkinkų algoritmus nepašokinėsi - darysi apvalinimą pagal jų taisykles, sėkmės įkišant savo teorines diskrečiosios matematikos žinias.

Dirbsi kitur - float pretty much bus irrelevant. GPS, temperatūrų, atstumo ir kt. paklaidos bus didesnės, nei tau rūpėtų, kaip CPU dvejetainius skaičius reiškia žmogiškais dešimtainiais.

 

Apie po kapotu - kaip tavo stacko runtime handlina floatą - diskrečiosios matematikos žinios taip pat mažai ką padės. https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html su mokykliniu matematikos išsilavinimu visi laisvai supranta...

Redagavo Deviltry
Nuoroda į pranešimą
Dalintis kituose puslapiuose

/face######ingpalm

Baik tu vienąkart su savo teorija.

 

Dirbsi su bankinėm sistemom - prieš keliasdešimt metų galiojančius bankinkinkų algoritmus nepašokinėsi - darysi apvalinimą pagal jų taisykles, sėkmės įkišant savo teorines diskrečiosios matematikos žinias.

Dirbsi kitur - float pretty much bus irrelevant. GPS, temperatūrų, atstumo ir kt. paklaidos bus didesnės, nei tau rūpėtų, kaip CPU dvejetainius skaičius reiškia žmogiškais dešimtainiais.

 

Apie po kapotu - kaip tavo stacko runtime handlina floatą - diskrečiosios matematikos žinios taip pat mažai ką padės. https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html su mokykliniu matematikos išsilavinimu visi laisvai supranta...

 

Pamatei mano slapyvardį, tai buvo būtina pakomentuot? Dabar vėl su tavim ginčytis…

 

Ar aš sakiau, kad programuojant nepanaudosi float ar double (ar kad tik vien tai ir tenaudosi)? O tai gal dabar iš vis int'ų nebereikia? Gal viską skaičiuokim su float ir double? Gal ir nei kombinatorikos nereikia, nei grafų teorijos, nei modulio aritmetikos, nei būlio algebros, nei nieko kito iš diskrečiosios matematikos? Viskam tinka float ir double?..

 

Žinok, ne viskas pasaulyje yra bankinės sistemos ar matematinės formulės…

 

O be to, sekmės randant milijoną π skaitmenų po kablelio su tuo savo double… (Ir tik nereikia aiškinti, kad „darbe to nereikės“ – yra kam to reikia ir yra kas tai daro).

 

if (1.0 == 0.99999999999999999) {
   cout << "Intel inside" << endl;
}

 

Ir net čia labai daug skaičių po kablelio nereikia. Prireiks Zimbabvėj bankinėn sistemoj pervesti tokią sumą 10000000000000001.0 ir pasimes vienas Zimbabvės doleris:

cout << fixed << 10000000000000001.0 << endl; // 10000000000000000.000000

 

Ir tai būtų visai realus scenarijus, nes prieš kelis metus tokią vertę sudarė šimtas kupiūrų:

http://upload.wikimedia.org/wikipedia/commons/thumb/3/3e/Zimbabwe_%24100_trillion_2009_Obverse.jpg/1200px-Zimbabwe_%24100_trillion_2009_Obverse.jpg

Redagavo wi_lius
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Pamatei mano slapyvardį, tai buvo būtina pakomentuot? Dabar vėl su tavim ginčytis…

 

Ar aš sakiau, kad programuojant nepanaudosi float ar double (ar kad tik vien tai ir tenaudosi)? O tai gal dabar iš vis int'ų nebereikia? Gal viską skaičiuokim su float ir double? Gal ir nei kombinatorikos nereikia, nei grafų teorijos, nei modulio aritmetikos, nei būlio algebros, nei nieko kito iš diskrečiosios matematikos? Viskam tinka float ir double?..

 

Žinok, ne viskas pasaulyje yra bankinės sistemos ar matematinės formulės…

 

O be to, sekmės randant milijoną π skaitmenų po kablelio su tuo savo double… (Ir tik nereikia aiškinti, kad „darbe to nereikės“ – yra kam to reikia ir yra kas tai daro).

 

if (1.0 == 0.99999999999999999) {
   cout << "Intel inside" << endl;
}

 

Ir net čia labai daug skaičių po kablelio nereikia. Prireiks Zimbabvėj bankinėn sistemoj pervesti tokią sumą 10000000000000001.0 ir pasimes vienas Zimbabvės doleris:

cout << fixed << 10000000000000001.0 << endl; // 10000000000000000.000000

 

Ir tai būtų visai realus scenarijus, nes prieš kelis metus tokią vertę sudarė šimtas kupiūrų:

http://upload.wikimedia.org/wikipedia/commons/thumb/3/3e/Zimbabwe_%24100_trillion_2009_Obverse.jpg/1200px-Zimbabwe_%24100_trillion_2009_Obverse.jpg

 

What is Decimal?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...