Mostrando entradas con la etiqueta algoritmos. Mostrar todas las entradas
Mostrando entradas con la etiqueta algoritmos. Mostrar todas las entradas

domingo, 5 de septiembre de 2021

Simulación del lanzamiento simultáneo de dos dados de parchís

Mediante el lenguaje de programación Python3, vamos a tratar la simulación del lanzamiento simultáneo de dos dados de parchís no trucados y el cálculo de la probabilidad de que la suma de las puntuaciones en un lanzamiento sea igual a un determinado valor.

  Las caras de sendos dados están numeradas del '1' al '6', dichos valores son los elementos de las respectivas LISTAS asociadas a cada dado, las cuales se recorren iterativamente de forma anidada para formar ( utilizando la instrucción 'add' ) el CONJUNTO de las 2-tuplas del espacio muestral así como el CONJUNTO de las 2-tuplas de los resultados favorables a que el valor de la suma de las puntuaciones del lanzamiento simultáneo de los dos dados sea igual a un valor requerido por el usuario.

  Así pues, en el programa se hace uso de dos LISTAS y de dos CONJUNTOS.

  Finalmente, se calcula la probabilidad de que el resultado de la suma de las puntuaciones de los dos dados que se lanzan sea igual a un determinado valor ( comprendido entre 2 y 12 ), el cual se solicita al usuario al inicio del programa.

  Como se parte de un espacio muestral equiprobable, la probabilidad se calcula aplicando directamente la regla/principio de Laplace.

  Para contabilizar el número de casos posibles así como el número de casos favorables ( número de elementos de los CONJUNTOS ) se utiliza la instrucción 'len'

-oOo-

Archivo de texto con el código fuente en el lenguaje de programación Python3: [simulaciondosdados.txt]

Referencias:
  [1] Vacas, J.A.: Curso de Python, YouTube

$\square$

jueves, 29 de abril de 2021

Diversas maneras de calcular el factorial de un número entero no negativo

program factorial_1;
uses crt;

var x,num,resultat:integer;

begin
  repeat
    clrscr;
    write('entra un nombre enter ');readln(num);

    x:=num;
    resultat:=1;

    while (x<>1) do
      begin
        resultat:=resultat*x;
        x:=x-1;
      end;

    writeln('el factorial de ',num,'  ‚s  ',resultat);

    delay(1000);
  until keypressed;

end.

program factorial_2;
uses crt;

var x,num:integer;
var resultat:longint;

begin
  repeat
    clrscr;
    write('entra un nombre enter ');readln(num);

    x:=num;
    resultat:=1;

    for x:=num downto 1 do
      begin
        resultat:=resultat*x;
      end;

    writeln('el factorial de ',num,'  ‚s  ',resultat);

    delay(1000);
  until keypressed;

end.

program factorial_3;
uses crt;

var x,num,resultat:integer;

procedure fes;
begin
  while (x<>1) do
    begin
      resultat:=resultat*x;
      x:=x-1;
      fes;
    end;
end;


begin
  repeat
    clrscr;
    write('entra un nombre enter ');readln(num);
    x:=num;
    resultat:=1;
    fes;
    writeln('el factorial de ',num,'  ‚s  ',resultat);
    delay(2000);
  until keypressed;
end.

Un libro recomendable para iniciarse en el aprendizaje algorítmico de la geometría

Un excelente libro cuya lectura invita a la exploración de objetos geométricos mediante un enfoque algorítmico del veterano lenguaje LOGO ( https://es.wikipedia.org/wiki/Seymour_Papert ) es el de Harold Abelson y Andrea diSesa: Abelson H., diSessa A., Geometría de Tortuga. El ordenador como medio de exploración de las Matemáticas, Ediciones Anaya, 1986.

La conjetura de Collatz ( o c. "3n+1" )

El problema 3n+1 consiste en estudiar el comportamiento de una sucesión de números naturales que empezando por un número natural cualquiera se obtiene a continuación el número 3n+1 si n es impar o bien n/2 si n es par. La conjetura 3n+1 nos dice que empezando con cualquier número natural n y construyendo dicha sucesión, siempre se llega al número 1.

No se ha probado aún dicha conjetura, si bien se ha llegado a demostrar es cierta para números menores o iguales que 16172831301712733 ( abril de 2021 ).

Referencias:
  [1] https://es.wikipedia.org/wiki/Conjetura_de_Collatz, Wikipedia

lunes, 26 de abril de 2021

Introducción a la programación con GNU Octave. Primer programa.


Averiguando si un cierto año es bisiesto


Máximo común divisor ( por el algoritmo de las restas sucesivas )



Máximo común divisor ( por el algoritmo de las divisiones sucesivas, más conocido como algoritmo de Euclides )

A continuación, podéis ver el código ( incluyendo una línea de comentario con vuestro nombre y apellidos ) del programa que podéis probar en vuestro entorno de OCTAVE.










Cálculo aproximado de raíces de una función. Método de bisección

Se muestra aquí el el código para implementar el programa en vuestro ordenador [puede ayudar a la comprensión


Ejercicio de programación en GNU Octave - Ternas pitagóricas


Programación con GNU Octave. Ejemplo de uso de bucles: suma de un conjunto de números enteros solicitados al usuario


Ejemplo de bucle con 'do ... until' en GNU Octave

Ejemplo de bucle con 'while' con GNU Octave

Ejemplo de bucle con 'for' con GNU Otave