# Kedvenc Matematikai Kísérleteim

## Alapok

Vigyázat!  Ha változtatunk, nagyon hamar rámenti az eredetire!
Ha ezt nem akarjuk, mindjárt mentsünk új néven!

Ha nyomtatni akarunk, exportáljunk .html vagy .pdf fájlként!

### Számolás

### Természetes számok

3+5

Sima <ENTER> csak új sor kezd, folytathatjuk gépelést.
A <SHIFT ENTER> indítja a számolást.

3+5;

%;

3+5
+7;

Az utasítások végére ; kell, de a <SHIFT ENTER> ezt beírja.

<CTRL-1>-gyel is hozhatunk létre szövegmezőt.

Több utasítás is kerülhet egy sorba:

3+5; 6+2;

Eltehetjük az eredményt, az értékadás :

a:3+5;

a;

3a;

A szorzásjelet (csillag) ki kell írni, de a válaszban nincs, és pontot ír helyette.

kill(a);

3*a;

a:8;

b:a;

b;

kill(a);

b;

kill(b);

b;

b:a:8;

a; b;

kill(all);

Újrakezdi a számozást is!

a; b;

A :: kiértékeli a bal oldalt is, és az értékének ad értéket.
Ritkán kell.

b:a;

b::13;

b;

a;

kill(b);

a;

Mi a maradékos osztás?

kill(all);

7/5;

7%5;

Egyik sem látszik jónak.  Néha mod a maradékképzés.
Próbáljuk ki:

mod(14,3);

Igen, a maradék. A hányados (mivel % az előző eredménye):

(14-%)/3;

Egyébként bármelyik előző megvan:

%i4;

%o4;

### Törtek

kill(all);

72/60;

### A hatvanas számrendszer

Nincs beépítve, csak 36-os számrendszerig. 
Az obase változó a kimeneti alapszám, az ibase a bemeneti.

obase:20;

Értékként az alapszámot kapjuk vissza, de már az új alapban. 
Előfordulhat, hogy egy számítás eredményét nem akarjuk látni. 
Ilyenkor írjunk pontosvessző helyett dollár jelet a parancs végére.

obase:20$apropos(#1);

a:123456;

obase:10;

print(a);

a;

ibase:20;

b:F8CG;

is(a=b);

equal(a,b);

b:0f8cg;

is(a=b);

A beviendő számnak számjeggyel kell kedődnie. Írjunk elé nullát!

### A tizes számrendszer

Ha tizedespont van, mindig tizes számrendszerben érti a számot.

ibase:10.; obase:10.;

### Tizedes törtek

3.14;

### Negatív számok

0-3;

%pi-5;

Amíg lehet, őrzi a pontos értéket 

float(%);

abs(%);

float(1/%pi);

1/0;

kill(all);

(-x)*y; x*(-y); (-x)*(-y);

### Számjegyek

0;1;2;3;4;5;6;7;8;9;

### A kettes számrendszer

obase:2$

7; 9; 19; 25;

ibase:16.$

0ff; 0ed; 9a;

ibase:10.$ obase:10.$

### Valós számok

kill(all);

π;

float(%), numer;

fpprec:50;

bfloat(π);

### Maradékos osztás valós számokra

ceiling(3.14); floor(3.14); mod(3.14,0);
mod(3.14,3); mod(3.14,-3);

### Oszthatóság a természetes
számok körében

divisors(28); divisors(17); divisors(0); divisors(1);

### Törzsszámok és prímszámok

### Legnagyobb közös osztó, 
legkisebb közös többszörös

### Bővített euklideszi algoritmus

euclid(a,b):=block([r0,r1,q,t,x0,y0,x1,y1],
  x0:1,y0:0,r0:a,x1:0,y1:1,r1:b, /* kezdő értékadások */
  while true do if equal(r1,0) then return([x0,y0,r0])
  else (q:floor(r0/r1),t:r1,r1:r0-q*r1,r0:t,
    t:x1,x1:x0-x1*q,x0:t,
    t:y1,y1:y0-y1*q,y0:t)
)$

A második sorban van egy megjegyzés /* és */ között. Ritkán van rá szükség.

euclid(84,60);

load(gcdex)$

igcdex(84,60);

%[1]*84+%[2]*60;

### Megjegyzés

### Példa: bővített euklidészi algoritmus

### Megjegyzés

### Tétel

### Megjegyzés

### A számelmélet alaptétele

### Hatványozás

5^2; 5^3; 2^10;

10^6*10^3; 10^9;

10^3/10^2;

1^0;

10^3/10^5;

0^0;

### Kanonikus alak

2*3*4*5*6*7*8*9*10; factor(%);

### Következmény

### Következmény

ilcm(n,m):=n*m/igcdex(n,m)[3];

igcdex(84,60);

ilcm(84,60);

### Következmény

### Állítás

### Állítás

### Eratosztenész szitája

Szita(n):=block([p,i,L],L:makelist(i,i,n),L[1]:0,
  for p:1 while p^2<=n do (
    while L[p]=0 do p:p+1,
    for i:p^2 step p while i<=n do L[i]:0
  ),return(L)
);

Szita(200);

primes(1,200);

### Eukleidész tétele

### Megjegyzés

### Megjegyzés

### Gyökvonás

### Horner-elrendezés

f:x^3-5*x^2+6*x-9;

horner(f,x);

### Kínai gyökvonás

### Hatványtáblák

b:0.9999999; x:1.;

for i:1  thru 20 do (x:x*b,print(i,x));

### Törtkitevős hatványok

kill(all);

sqrt(10);

10^(1/2);

float(%), numer;

10^(2/4);

(-8)^(1/3);

((-8)^2)^(1/6);

### Logaritmus

kill(all);

A tizes alapú logaritmust a beépített logaritmus segítsével
definiáljuk.  A függvényt := definiálja.

lg(x):=log(x)/log(10.);

lg(2);

float(%), numer;

### Számolás logaritmusokkal

kill(all);

log(a*b^2);

%, logexpand=super;

logcontract(%);

Defináljunk tetszőleges alapú logaritmust! A második változó az alap.

logb(x,b):=log(x)/log(b);

plot2d([2^x,logb(x,2)],[x,-2,4],[y,-2,4],same_xy)$

Az ábra a szövegbe is beágyazható, persze, a fájl így jóval hosszabb.
Ezért ezt kerülni fogjuk. A plot mellett a draw is rajzol. Többet tud,
de a plot egyszerűbb.

wxplot2d([2^x,logb(x,2)],[x,-2,4],[y,-2,4],same_xy)$

### Számolóművészek

fpprintprec:4;

A kiírás pontossága legyen négy jegy.

for k:1 thru 20 do (
  print(k,float(log(k)/log(10))));

fpprintprec:0;

### p-adikus számok

7109376^2;

2890625^2;

### Számtani és mértani közép

L:[5,1/5,1/5,1/5,1/5];

mean(L);

geometric_mean(L);

float(%), numer;

### Feladat

### Feladat

### Feladat

### Feladat

### Feladat

### Feladat

### Feladat

### Feladat

### Feladat

### Feladat

### Feladat

### Feladat

### Feladat

### Feladat

### Feladat

### Feladat

### Feladat

### Feladat

### Feladat

### Feladat

### Feladat

### Feladat

### Feladat

### Feladat

### Feladat

### Feladat

### Feladat

### Feladat