Trucos matemáticos para la programación competitiva en Python 3

Estas son algunas de las funciones interesantes que Python 3.8 proporciona a los programadores en la programación competitiva. Estas nuevas funciones están relacionadas con algunas funciones y algoritmos matemáticos que los programadores de la competencia utilizan con frecuencia. La implementación de estas funciones tiene la complejidad del tiempo, que es la misma en el caso de un programa cuando se implementa desde cero.
Discutiremos 
 

  • Exponenciación modular
  • Módulo Multiplicativo Inverso
  • Cálculo de n Cr y n Pr

Exponenciación modular

Dados 3 números A, B y Mod.Calcular (A B )%Mod. 
Ejemplos: 
 

Input : A = 4, B = 3 Mod = 11 
Output : 9 
Explanation: (43)%11 = (64)%11 = 9

Input : A = 3, B = 3 Mod = 5 
Output : 2
Explanation: (33)%5 = (27)%5 = 2

La implementación tradicional de exponenciación modular se analiza aquí
A continuación se muestra la solución Python3.8 discutida 
 

Python

A = 4
B = 3
Mod = 11
 
# Power function can take 3
# parameters and can compute
# (A ^ B)% Mod
print('The power is {}'.format(pow(A, B, Mod)))

Producción: 
 

The power is 9

Multiplicativo Modular Inverso

Dados dos enteros A y Mod, Calcula el inverso multiplicativo modular de A bajo módulo Mod. 
El inverso multiplicativo modular es un entero B tal que 
 

(A.B)%Mod = 1 where gcd(A, Mod) should be equal to 1

Ejemplos: 
 

Input : A = 4, Mod = 11  
Output : 3 
Explanation: (4*3)%11 = (12)%11 = 1

Input : A = 3, Mod = 5 
Output : 2
Explanation: (3*2)%5 = (6)%5 = 1

La implementación tradicional de Modular Multiplicative Inverse se analiza aquí
A continuación se muestra la solución Python3.8 discutida
 

Python

A = 4
Mod = 11
 
# Power function can take 3 parameters
# and can compute (A^-1)% Mod
print(f'The Modular Multiplicative Inverse \
of A under Mod is {pow(A, -1, Mod)}')

Producción: 
 

The Modular Multiplicative Inverse of A under Mod is 3

Cálculo de Ncr y Npr

Dado el valor de N y r. Calcule Ncr (Combinaciones de N cosas tomadas r a la vez) y Npr (Permutaciones de N cosas tomadas r a la vez).
Ejemplos: 
 

Input : N = 10, r = 3  
Output : Ncr = 120

Input : N = 10, r = 3  
Output : Npr = 720

Las implementaciones tradicionales de Ncr y Npr se analizan aquí y aquí
. A continuación, se describe la solución de Python3.8.
 

Python

import math
N = 10
r = 3
 
print(f"Ncr = {math.comb(N, r)}")
print(f"Npr = {math.perm(N, r)}")

Producción: 
 

Ncr = 120
Npr = 720

Publicación traducida automáticamente

Artículo escrito por Harish Vemula y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *