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

2019-08-27

Trucos aritméticos 1

Pase lo que pase, la práctica del cálculo mental debe de ser repetitiva, regular, alrededor de 10 minutos al día es suficiente: su cerebro tiene que adquirir los automatismos y para esto,solo repetir y repetir las mismas fórmulas es efectivo, los mismos cálculos hasta que esto se conviertan en cosa evidente y natural. El cálculo mental es interesante por más de un motivo:

  • Crea automatismos.
  • Ayuda al razonamiento.
  • Acostumbra a trabajar con números.
  • Permite conocer las propiedades de los números.

Herramientas básicas para desarrollar la capacidad en cálculo mental


  • Las tablas de suma y de multiplicación
  • Los complementos del número 10
  • Los cuadrados hasta 15² (=225) así como de las potencias de 2
  • Técnica de multiplicación por potencias de 10 con exponentes negativos (hay que desplazar el punto hacia la izquierda) y exponentes positivos (desplazar el punto hacia la derecha)
  • « Dividir un número = multiplicar por su inverso », por ejemplo, dividir entre 0.25, es multiplicar por 4.
  • Los productos notables: (a+b) ² = a²+2ab+b², (a-b) ² = a²-2ab+b², (a+b) (a-b) = a²-b².
  • Aprender las reglas de factorización
  • Conocer constantes como PI (3.14159), número de oro (1.618), etc.
  • Realizar operaciones de izquierda a derecha.
  • Redondear a potencias de 10
  • Substraer sumando
  • Multiplicar por potencias de 2 doblando sucesivamente
  • Dividendo por potencias de 2 sacando mitades sucesivas
  • Multiplicar por 5: multiplicar por 10 y sacar mitad
  • Dividir por 5: Doblar y dividir entre 10
  • Cuadrado de un numero que termina en 5: a(a+1)+25, a = (n-5)/10
  • Multiplicar por 25: Multiplicar por 100 y sacar mitad dos veces
  • Dividir entre 25: Doblar dos veces y dividir entre 100
  • Multiplicar por un numero que termina en .5: doblar primero para eliminar el .5, multiplicar y sacar mitad al otro factor
  • Dividir entre un numero que termina en .5: doblar dividendo y divisor
  • Cuadrado de un numero que termina en 1 (a1) : 100a2+10 2a + 1
  • Multiplicar dos números con diferencia de dos (a-1,a+1): a2-1 

Trucos


    • Multiplicar por 15: multiplicar por 10 el multiplicando más su mitad
    • Dividir entre 15: Multiplicar por 2/3 y dividir entre 10
    • Multiplicar por 75: multiplicar por 3/4 por 100
    • Dividir por 75: multiplicar por 1 1/3 y dividir entre 100
    • Multiplicar por 9: Multiplicar por 10 y substraer el multiplicando
    • Multiplicar por 125: Dividir entre 8 y multiplicar por 1000
    • Dividir entre 125: Multiplicar por 8 y dividir entre 1000
    • Estimar división entre 9 multiplicando por 11
    • Estimar división entre 11 multiplicando por 9
    • Estimar división entre 14 multiplicando por 7
    • Estimar división entre 17 multiplicando por 6
    • ¿Cómo multiplicar por 11? Basta con sumar las 2 cifras que componen el número que vamos a multiplicar por 11 y colocar el resultado entre esas dos cifras.

    2009-08-22

    La aritmética de Trachtenberg

    Así como Viktor Emil Frankl desarrollo la logoterapia para superar los rigores de los campos de concentración Nazi, Jakow Trachtenberg ocupo su mente en desarrollar un sistema de aritmética mental al verse en la misma situación.

    El sistema Trachtenberg de rápido cálculo mental, similar a las matemáticas Védicas, consiste en un conjunto de patrones para realizar operaciones aritméticas. Los algoritmos más importantes son multiplicación,división, y adición. El método también incluye algoritmos especializados para realizar multiplicaciones por números entre 5 y 13.

    Multiplicación por 11

    Abusando de la notación

    (11)a = 11Σai10i =

    an10n+1 + [Σj=0n-1(aj+aj+1)10j ]+ a0

    Multiplicación por 12

    (12)a = 12Σai10i =

    an10n+1 + [Σj=0n-1 (aj+2aj+1)10j ]+ 2a0

    Multiplicación por 6

    Definiendo

    bj = aj/2, donde / denota división entera

    cj = aj mod 2

    tenemos

    aj = 2bj + cj

    (6)a = (10/2)Σai10i  + Σai10i =

    Σbi10i+1 + Σ(ai + 5ci)10i

    bn10n+1 + [Σj=1n(aj + 5cj + bj-1)10j ]+ (a0 + 5c0)

    Expresando el algoritmo en python:

    def x6(number):
    previous = 0
    result = 0
    power_of_10 = 1
    while (number):
    digit = number%10
    odd_term = 5 if digit%2 else 0
    result =
    (digit + odd_term + previous ) *
    power_of_10 + result
    previous = digit//2
    power_of_10 *= 10
    number = number // 10
    result = previous * power_of_10 + result
    return result




    Multiplicación por 7



    De manera similar al caso anterior:




    aj = 2bj + cj



    (7)a = (10/2)Σai10i  + Σ2ai10i =



    Σbi10i+1 + Σ(2ai + 5ci)10i



    bn10n+1 + [Σj=1n(2aj + 5cj + bj-1)10j ]+ (a0 + 5c0)




    Expresando el algoritmo en python:



    def x7(number):
    previous = 0
    result = 0
    power_of_10 = 1
    while (number):
    digit = number%10
    odd_term = 5 if digit%2 else 0
    result =
    (2*digit + odd_term + previous ) *
    power_of_10 + result
    previous = digit//2
    power_of_10 *= 10
    number = number // 10
    result = previous * power_of_10 + result
    return result


    Multiplicación por 5



    De manera similar al caso anterior:




    aj = 2bj + cj



    (5)a = (10/2)Σai10i   =



    Σbi10i+1 + Σ(5ci)10i



    bn 10n+1 + [Σj=1n(5cj + bj-1)10j ]+ (5c0)




    Expresando el algoritmo en python:



    def x5(number):
    previous = 0
    result = 0
    power_of_10 = 1
    while (number):
    digit = number%10
    odd_term = 5 if digit%2 else 0
    result =
    (odd_term + previous ) *
    power_of_10 + result
    previous = digit//2
    power_of_10 *= 10
    number = number // 10
    result = previous * power_of_10 + result
    return result


    Multiplicación por 9



    Definiendo




    b = 10n+1 - Σj=0naj , o sea el complemento a 10 de a




    tenemos




    (9)a = 10a –a =



    10a –a + b – b =



    10a + b - 10n+1 =



    (an – 1)10n+1 + [Σj=1n(bj + aj-1)10j ]+ (b0 )




    Expresando el algoritmo en python:



    def x9(number):
    previous = number%10
    result = 10 - previous
    power_of_10 = 10
    number = number // 10
    while (number):
    digit = number%10
    result =
    (9 - digit + previous ) *
    power_of_10 + result
    previous = digit
    power_of_10 *= 10
    number = number // 10
    result =
    (previous-1) * power_of_10 +
    result
    return result


    Multiplicación por 8



    Definiendo




    b = 10n+1 - Σj=0naj , o sea el complemento a 10 de a




    tenemos




    (8)a = 10a –2a =



    10a –2a +2 b – 2b =



    10a + 2b – (2)10n+1 =



    (an – 2)10n+1 + [Σj=1n(2bj + aj-1)10j ]+ (2b0 )




    Expresando el algoritmo en python:



    def x8(number):
    previous = number%10
    result = 2*(10 - previous)
    power_of_10 = 10
    number = number // 10
    while (number):
    digit = number%10
    result =
    (2*(9 - digit) + previous ) *
    power_of_10 + result
    previous = digit
    power_of_10 *= 10
    number = number // 10
    result =
    (previous-2) *
    power_of_10 + result
    return result


    Multiplicación por 3 y por 4



    Los algoritmos para multiplicar por 3 y por 4 combinan las ideas usadas en la multiplicación por 5 y por 9.



    Definiendo




    b = 10n+1 - Σj=0naj , o sea el complemento a 10 de a



    ai = 2ci + di, donde



    ci = ai/2



    di = ai mod 2




    tenemos




    (4)a = 5a –a =



    10c + 5d + b - 10n+1



    (3)a = 5a –2a =



    10c + + 5d + 2b – (2)10n+1




    Expresando los algoritmos en python:



    def x3(number):
    digit = number%10
    result = 2*(10 - digit)
    if digit % 2:
    result += 5
    previous = digit // 2
    power_of_10 = 10
    number = number // 10
    while (number):
    digit = number%10
    odd_term = 5 if digit%2 else 0
    result +=(2*(9 - digit) + odd_term + previous ) * power_of_10
    previous = digit//2
    power_of_10 *= 10
    number = number // 10
    result = (previous-2) * power_of_10 + result
    return result

    def x4(number):
    digit = number%10
    result = (10 - digit)
    if digit % 2:
    result += 5
    previous = digit // 2
    power_of_10 = 10
    number = number // 10
    while (number):
    digit = number%10
    odd_term = 5 if digit%2 else 0
    result +=((9 - digit) + odd_term + previous ) * power_of_10
    previous = digit//2
    power_of_10 *= 10
    number = number // 10
    result = (previous-1) * power_of_10 + result
    return result


    Referencias








    2009-08-07

    Aritmética y memoria; 513 Sticker

     

    Es posible mediante el ejercicio de la memoria acelerar cálculos aritméticos. Este es un patrón general que también se aplica a la implementación algorítmica.

    Por ejemplo, al multiplicar números de dos dígitos tenemos

    a1a0 x b1b0 = (10a1+a0)(10b1+bo)=

    100a1b1+10(a1bo+a0b1)+a0bo

    Al multiplicar números de tres dígitos tenemos

    a2a1a0 x b2b1b0 = (100a2+10a1+a0)(100b2+10b1+bo)=
    10000a2b2 + 1000(a2b1+a1b2) +
    100(a2b0+a1b1+a0b2) + 10(a1bo+a0b1)+a0bo

    Si recordamos las fórmulas podemos encontrar los dígitos del producto directamente.

    Al calcular el cuadrado de un número de 2 dígitos

    (a1a0 )2 = (10a1+a0)2=
    100a12+10(2a1a0)+a02

    Al calcular el cuadrado de un número que termina en 1

    (a11 )2 = (10a1+1)2=
    100a12+10(2a1)+1

    Al calcular el cuadrado de un número que termina en 5

    (a15 )2 = (10a1+5)2=
    100(a12+a1) + 25=
    100a1(a1+1) + 25

    Al calcular el cuadrado de un número que empiezan en 5

    (5a0 )2 = (50 + a0)2=
    100(25 +a0) + a02

    Al calcular el productos de números de tres dígitos que empiezan con 1

    (1a1 a0)(1b1b0) =
    (100 + 10a1 + a0)(100 + 10 b1 + b0) =
    10000 + 1000(a1 + b1) + 100(a1b1 +  a0 +  b0) +
    10(a1b0 + a0b1) + a0b0

    Multiplicar un número menor que 100 por 99

    (a)(99) = 100 (a – 1)  + (100 – a)

    Referencias