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

Ambiţiile Cavalerului

Warnsdorff | backtracking | drum hamiltonian | graf | javaScript | knight
2009 feb

demersurile aplicaţiei Knight
      modelarea "problemei calului" (ca graf şi ca obiect de memorie), folosind javaScript
      reprezentarea vizuală a grafului în fereastra browserului
      modelarea căutării unui drum hamiltonian (backtracking)
      backtracking compus cu un algoritm euristic

principiul lui Warnsdorff (1823): continuă pe acel drum din care vei avea cât mai puţine ramificaţii - altfel spus, iterează recomandarea evidentă: dacă ai de ales între a face un ultim pas până la destinaţie şi respectiv a ocoli, atunci încearcă mai întâi prima variantă!

Experimente cu factoriale in javaScript

factorial | javaScript
2008 dec

Câte cifre are n! şi care sunt cifrele iniţiale? Câte cifre zecimale are 22009 şi care sunt primele câteva cifre?
Există n încât n! să aibă n cifre zecimale? Există n încât n! să aibă n cifre hexazecimale?

Modelarea comparativă a calculului factorialelor în bazele 10, 106, 216 (în javaScript).

Cel mai mare număr natural care are Z cifre zecimale este 10Z - 1; cel mai mare număr natural care are T cifre în baza 256 este 256T - 1. Rezultă că Z = T * lg(256) ≈ T * 2.40824, adică:
reprezentarea în baza 256 necesită de minimum 2.4 ori mai puţine "locaţii" decât cea în baza 10, iar operarea bazată pe reprezentarea în baza 256 necesită de 2.4 ori mai puţine operaţii "cifră cu cifră" decât cea bazată pe reprezentarea zecimală obişnuită.

Şablonul "return 0; ELSE return 1" (mot-à-mot din Pascal în C)

Pascal | Pascal versus C
2008 dec

Manualul vizează în paralel limbajul Pascal şi limbajul C/C++ (plus… pseudocodul excesiv). Ideea de a viza împreună mai multe limbaje de programare este excelentă, dar "realizarea" ei în acest manual este… "în paralel": programele redate în C/C++ nu sunt altceva în acest manual, decât traduceri mot-à-mot ale programelor Pascal.

Limbajul Pascal nu are o instrucţiune return. Ca urmare, traducerea mot-à-mot a funcţiilor recursive din Pascal în C duce la formulări principial greşite: if(...) return 0; else return 1;

Extinderea obiectului Array cu o metodă quickSort()

Array | javaScript | qsort
2008 nov

Array .prototype .q_sort = function(beg, end) { /* QuickSort */ }
de fapt, metoda existentă sort() este tot ceea ce este necesar! restul poate fi (ca aici) un exerciţiu didactic de prezentare a unor aspecte de lucru cu obiecte Javascript.

Implicarea browserului în studiul convergenţei

javaScript | limite
2008 nov

Rezolvarea unei probleme de matematică (de exemplu, demonstrarea convergenţei unui şir) poate fi sugerată de rezultatele investigaţiei printr-un program adecvat.

În cadrul documentului HTML ar fi suficient să prevedem următoarele elemente:
— două elemente <input>, pentru a permite utilizatorului să precizeze gama de termeni de calculat (rangul iniţial şi rangul final);
— un element <div> destinat scrierii termenilor şirului, pe măsură ce vor fi calculaţi;
— un <button> a cărui acţionare prin click să declanşeze calculul şi scrierea termenilor respectivi
— un <script> care să modeleze funcţia de calculare a termenilor şirului.


Prev
Next
ALL (368 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: