MathAction PascalTriangle



PascalTriangle
last edited 11 years ago by test1

Below there is a function which generates Pascal triangle by iteratively filling rows of a matrix using recurence formula. Spad array indexing is one based, so we cheat and add 1 to indices.

fricas
(1) -> <spad>
fricas
)abbrev package PASCAL Pascal
Pascal : with ( make_pascal : Integer -> Matrix(Integer) )
 == add
 make_pascal(N : Integer) : Matrix(Integer) ==
 -- coerce here to NonNegativeInteger because this is what
 -- 'zero' requires
 nn := N::NonNegativeInteger
 tab := zero(nn, nn)$Matrix(Integer)
 n : Integer
 tab(1, 1) := 1
 for n in 2..nn repeat
 -- Fill row numer n
 k : Integer
 tab(n, 1) := 1
 tab(n, n) := 1
 for k in 2..(n - 1) repeat
 tab(n, k) := tab(n-1, k) + tab(n-1, k-1)
 tab</spad>
fricas
Compiling FriCAS source code from file 
 /var/lib/zope2.10/instance/axiom-wiki/var/LatexWiki/1379180095272779836-25px001.spad
 using old system compiler.
 PASCAL abbreviates package Pascal 
------------------------------------------------------------------------
 initializing NRLIB PASCAL for Pascal 
 compiling into NRLIB PASCAL 
 compiling exported make_pascal : Integer -> Matrix Integer
Time: 0.02 SEC.
(time taken in buildFunctor: 0)
;;; *** |Pascal| REDEFINED
;;; *** |Pascal| REDEFINED Time: 0 SEC.
Cumulative Statistics for Constructor Pascal Time: 0.03 seconds
finalizing NRLIB PASCAL Processing Pascal for Browser database: --->-->Pascal(constructor): Not documented!!!! --->-->Pascal((make_pascal ((Matrix (Integer)) (Integer)))): Not documented!!!! --->-->Pascal(): Missing Description ; compiling file "/var/aw/var/LatexWiki/PASCAL.NRLIB/PASCAL.lsp" (written 21 APR 2025 09:44:11 PM):
; wrote /var/aw/var/LatexWiki/PASCAL.NRLIB/PASCAL.fasl ; compilation finished in 0:00:00.016 ------------------------------------------------------------------------ Pascal is now explicitly exposed in frame initial Pascal will be automatically loaded when needed from /var/aw/var/LatexWiki/PASCAL.NRLIB/PASCAL

Try it out:

fricas
make_pascal(5)
Type: Matrix(Integer)

See also PascalTriangleNopile.




Subject: Be Bold !!
( 15 subscribers )
Please rate this page:

AltStyle によって変換されたページ (->オリジナル) /