Grain of Salt - [entries|archive|friends|userinfo]
snauts

[ userinfo | sc userinfo ]
[ archive | journal archive ]

[Nov. 2nd, 2010|07:07 pm]
Previous Entry Add to Memories Tell A Friend Next Entry
Pirms pāris nedēļām kādā universitātes seminārā pasniedzējs stāstīja kā "atvasināt" bildi (diskrēti samplētu funkciju), ja nu kādreiz rodas tāda vajadzība. Pirmās kārtas diferences - nav problēmu, paņemam pikseli un atņemam no tā kaimiņu, jeb vienkārši izmantojam svarus [1 -1], pats ar svaru 1, kaimiņš ar svaru -1. Otrās kārtas diferences - nav problēmu, ņemam svarus [1 -2 1], ko iegūst:
   1 -1
      1 -1
-  -------
   1 -2  1

trešās kārtas diferences:
   1 -2  1
      1 -2  1
-  ----------
   1 -3  3 -1

varēja pamanīt, ka tiem skaitļiem ir sakars ar Paskāla trīsstūri:
       1 -1
     1 -2  1
   1 -3  3 -1
 1 -4  6 -4  1

Kad jautāju vai tai padarīšanai ir vārds, pasniedzējs man atbildēja, ka tā jau esot galīgo diferenču shēma. Izrādās Kalis to esot man mācījis 2000. gadā, kad macījos otrajā kursā.

Šodien neko tādu nenojaušot "eju cauri" SICP 3.5 nodaļai par strīmiem un tur kādā no uzdevumiem tiek piedāvāts izmantot strīmus, lai implementētu formal power series (formālo pakāpju rindas?). Šīs rindas var saskaitīt, reizināt un visādi citādi ar tām manipulēties. Grāmata uzdevumā prasa uztaisīt rindu reizinātāju un inversās rindas atrašanas funkciju. Spēlējoties ar savām primitīvajām rindiņām es ievēroju, ka "integer" rindai [1 2 3 4 5 6 ...] inversā rinda ir [1 -2 1 0 0 0 ...]. Bļin, kaut kur kaut kas tāds jau ir redzēts. Paprovējam atrast inverso rindu priekš "ones" rindas [1 1 1 1 1 1 ...], dabonam [1 -1 0 0 0 0 ...]. Vaimandieniņ, pareizinam "ones" rindu ar "integer" rindu, paņemam inverso, iegūstam [1 -3 3 -1 0 0 ...]. Vēlreiz piereizinam "one" un iegūstam inverso [1 -4 6 -4 1 0 ...].

Wow, mind blown.
linkpost comment