momente şi schiţe de informatică şi matematică
To attain knowledge, write. To attain wisdom, rewrite.

Producţii De Bruijn dintr-un model minimal de graf

C++ | DOT | De Bruijn | graf
2014 jan

O modelare minimală a grafurilor ar avea de prevăzut alocarea şi delocarea memoriei pentru înregistrarea adiacenţei, o metodă de precizare a adiacenţei a două vârfuri şi o metodă generală de traversare (fie DFS), în vederea prelucrării vârfurilor printr-o metodă lăsată spre specificare claselor derivate.

Constituim în C++ un astfel de model, clasa Graph. Rezolvarea a diverse chestiuni reductibile la parcurgerea şi prelucrarea nodurilor unui anumit graf, revine la a deriva din Graph o clasă al cărei constructor să seteze adiacenţa specifică problemei, încorporând metoda specifică de "prelucrare" şi o metodă care să invoce Graph::DFS(). Exemplificăm aceste demersuri pentru a produce şiruri De Bruijn.

Generarea directă a unor şiruri De Bruijn binare

C++ | De Bruijn
2014 jan

Studiem o relaţie "uϒv" între numere reprezentabile pe n biţi, astfel încât u şi v să poată fi reperate într-o secvenţă de n+1 biţi consecutivi dintr-un şir S; justificăm un algoritm de generare a unui şir finit de numere naturale - iterând relaţia "uϒv" - astfel încât reprezentările binare ale termenilor şirului să poată furniza un cel mai scurt cuvânt S care să aibă ca subcuvinte toate secvenţele de n biţi.
Şirul generat prin acest algoritm coincide cu cel dat de parcurgerea DFS a grafului asociat relaţiei "uϒv", plecând însă dintr-un anumit nod al acestuia.

Aplicaţii elementare ale metodei Monte Carlo

C++ | Python
2013 dec

Estimarea "experimentală" a numărului PI; probabilitatea ca un triunghi înscris într-un cerc dat să fie ascuţitunghic. Determinarea mutării de răspuns în cursul unui joc (Hex), prin simulări Monte Carlo ale continuării jocului.

"Elemente de OOP" la clasa a XI-a - modelarea matricelor

C++
2013 nov

Momentul cel mai potrivit pentru a aborda OOP este acela în care elevii au asimilat un nou "tip de date". Faptul că în primele câteva săptămâni la matematică se studiază capitolul "Matrice", ne oferă un excelent prilej de a demara OOP: să modelăm în C++, ceea ce la matematică se notează prin Mn,m(R) - mulţimea matricelor "de tip (n,m) peste mulţimea numerelor reale", împreună cu anumite operaţii posibile între elementele acestei mulţimi.

"Hello" şi "Goodbye" - constructor, destructor şi this în C++

C++
2013 oct

Să se scrie un program C++ care să afişeze "Hello!" după lansarea în execuţie şi "Goodbye!" la încheiere, dar al cărui funcţie main() să fie vidă (dintr-o baterie de teste pentru angajare).

O soluţie constă în a instanţia un obiect (exemplar de struct, sau de class) "învăţat" să afişeze anumite mesaje în momentul creării şi respectiv, în momentul invocării finale a destructorului (desigur, ţinem seama că execuţia unui program C/C++ începe cu "startup code" - iniţializând în prealabil, variabilele globale). Şi neavând nevoie decât de un constructor şi de un destructor - este suficient să folosim struct (din C++, nu cel din C).


Prev
Next
ALL (349 titluri)

vezi Cărţile mele (de programare)

despre acesta ~ Home
(sau https://vlad.bazon.net/

Factoriale | Graficul funcţiilor

PGN browser | chess JS engine

Load

in /slightchess

/slightchess

626 partide analizate cu Crafty

(R) Computer Art | Decoraţiuni

Aplicaţii şcolare (javaScript)

Sinteze: