5.4. Operaciones sobre escalares

Veremos algunas de las operaciones que podemos realizar sobre los escalares.

5.4.1. Operaciones usuales sobre escalares

YACAS posee los siguientes operadores para las operaciones usuales sobre escalares:

5.4.2. División entera

También disponemos de operadores para realizar la división entera, es decir obtener el cociente y el resto de una división.

Mod sirve para calcular el resto de una división entera:

Ejemplo 5-3. Uso de Mod

In> Mod(5,4);
Out> 1;
In> 
	

Div sirve para calcular el cociente de una división entera:

Ejemplo 5-4. Uso de Div

In> Div(15,4);
Out> 3;
In> 
	

5.4.3. Operadores de desplazamiento de bits

Todos aquellos que programan regularmente en leguajes derivados del C conocen los operadores de desplazamiento de bits << y >>.

Estos operadores se utilizar para desplazar bits hacía la izquierda, <<, o hacía la derecha, >>.

El uso de estos operadores es importante a la hora de realizar cálculos ya que nos permiten optimizar algunas operaciones.

Los datos en un ordenador se almacenan en base 2, y el desplazar los bits n posiciones hacía la izquierda equivale a multiplicar por 2^n:

Ejemplo 5-5. Uso del operador <<

In> 12<<5;
Out> 384;
In> 12*(2^5);
Out> 384;
In>
	

De igual forma el desplazar n bits hacía la derecha equivale a dividir, de forma entera, por 2^n:

Ejemplo 5-6. Uso del operador >>

In> 2346 >> 6;
Out> 36;
In> Div(2346,2^6);
Out> 36;
In>
	

5.4.4. Cálculo del Máximo Común Divisor

Para el cálculo del Máximo Común Divisor YACAS dispone de la función Gcd y la podemos utilizar de dos formas diferentes:

La primera de ellas es para calcular el Máximo Común Divisor de dos números enteros:

Ejemplo 5-7. Uso de Gcd para el cálculo del mcd de dos números

In> Gcd(55,1350);
Out> 5;
In> 
	

También la podemos utilizar para calcular el Máximo Común Divisor de una lista de números enteros:

Ejemplo 5-8. Uso de Gcd para el cálculo del mcd de una lista de números

In> Gcd({2,5,6,8,9,12,45,67,89});
Out> 1;
In> 
	

5.4.5. Cálculo del Mínimo Común Multiplo

Para el cálculo del Mínimo Común Múltiplo YACAS dispone del la función Lcm:

Ejemplo 5-9. Uso de Lcm para el cálculo del mcm

In> Lcm(6,4);
Out> 12;
In> 
	

5.4.6. Trabajando en bases distintas de la decimal

Podemos trabajar en bases distintas de la decimal y para ello tenemos las siguientes funciones:

5.4.7. Expansiones en base n

Podemos encontrar la expansión de un determinado número en base n:

Ejemplo 5-12. Uso de PAdicExpand

In> PAdicExpand(156,10)
Out> 5*10+10^2+6;
In>
          

5.4.8. Aproximaciones racionales de números reales

Podemos aproximar números reales por números racionales mediante el uso de Rationalize:

Ejemplo 5-13. Uso de Rationalize

In> N(Pi);
Out> 3.1415926536;
In> Rationalize(%);
Out> 3926990817/1250000000;
In> {1.2,56.098,-0.65};
Out> {1.2,56.098,-0.65};
In> Rationalize(%);
Out> {6/5,28049/500,-13/20};
In>
	  

5.4.9. Redondeos

Disponemos de varias funciones para redondear:

5.4.10. Determinación de números primos

Podemos comprobar cuando un número es primo o no utilizando la función IsPrime:

Ejemplo 5-17. Uso de IsPrime

In> IsPrime(25);
Out> False;
In> IsPrime(7);
Out> True;
In>
          

Esta función comprueba si los números comprendidos entre 2 y la raíz cuadrada del número a comprobar su primalidad lo dividen. No es un algoritmo optimo y consume mucho tiempo de ejecución para números grandes.

5.4.11. Factorización en números primos

Para factorizar un número en factores primos podemos utilizar Factors:

Ejemplo 5-18. Uso de Factors

In> Factors(50);
Out> {{2,1},{5,2}};
In>
          

También es posible utilizar Factor:

Ejemplo 5-19. Uso de Factor

In> Factor(50);
Out> 2*5^2;
In>