Skip to content
Snippets Groups Projects
Commit bb2a8061 authored by Koffi Gantchou's avatar Koffi Gantchou
Browse files

Upload New File

parent b4067ceb
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/python3
# -*- coding: utf-8 -*-
#gantchou koffi
#mi13
#30/01
from ap_decorators import trace
#Somme:
@trace
def somme(a: int, b: int) -> int:
"""
Renvoie la somme de deux nombres a et b.
"""
if b == 0:
return a
else:
return somme(a + 1, b - 1)
# somme(10,12)
# -> somme((10, 12), {})
# ... -> somme((11, 11), {})
# ...... -> somme((12, 10), {})
# ......... -> somme((13, 9), {})
# ............ -> somme((14, 8), {})
# ............... -> somme((15, 7), {})
# .................. -> somme((16, 6), {})
# ..................... -> somme((17, 5), {})
# ........................ -> somme((18, 4), {})
# ........................... -> somme((19, 3), {})
# .............................. -> somme((20, 2), {})
# ................................. -> somme((21, 1), {})
# .................................... -> somme((22, 0), {})
# .................................... <- 22
# ................................. <- 22
# .............................. <- 22
# ........................... <- 22
# ........................ <- 22
# ..................... <- 22
# .................. <- 22
# ............... <- 22
# ............ <- 22
# ......... <- 22
# ...... <- 22
# ... <- 22
# <- 22
# 22
#Binomial:
@trace
def binomial(n: int, r: int) -> int:
"""
Renvoie le coefficient binomial nCr.
"""
if n == 1 and r == 1:
return 1
elif r==0:
return 1
elif n==0:
return n
else:
return binomial(n - 1, r - 1) + binomial(n - 1, r)
# binomial(6,5)
# -> binomial((6, 5), {})
# ... -> binomial((5, 4), {})
# ...... -> binomial((4, 3), {})
# ......... -> binomial((3, 2), {})
# ............ -> binomial((2, 1), {})
# ............... -> binomial((1, 0), {})
# ............... <- 1
# ............... -> binomial((1, 1), {})
# ............... <- 1
# ............ <- 2
# ............ -> binomial((2, 2), {})
# ............... -> binomial((1, 1), {})
# ............... <- 1
# ............... -> binomial((1, 2), {})
# .................. -> binomial((0, 1), {})
# .................. <- 0
# .................. -> binomial((0, 2), {})
# .................. <- 0
# ............... <- 0
# ............ <- 1
# ......... <- 3
# ......... -> binomial((3, 3), {})
# ............ -> binomial((2, 2), {})
# ............... -> binomial((1, 1), {})
# ............... <- 1
# ............... -> binomial((1, 2), {})
# .................. -> binomial((0, 1), {})
# .................. <- 0
# .................. -> binomial((0, 2), {})
# .................. <- 0
# ............... <- 0
# ............ <- 1
# ............ -> binomial((2, 3), {})
# ............... -> binomial((1, 2), {})
# .................. -> binomial((0, 1), {})
# .................. <- 0
# .................. -> binomial((0, 2), {})
# .................. <- 0
# ............... <- 0
# ............... -> binomial((1, 3), {})
# .................. -> binomial((0, 2), {})
# .................. <- 0
# .................. -> binomial((0, 3), {})
# .................. <- 0
# ............... <- 0
# ............ <- 0
# ......... <- 1
# ...... <- 4
# ...... -> binomial((4, 4), {})
# ......... -> binomial((3, 3), {})
# ............ -> binomial((2, 2), {})
# ............... -> binomial((1, 1), {})
# ............... <- 1
# ............... -> binomial((1, 2), {})
# .................. -> binomial((0, 1), {})
# .................. <- 0
# .................. -> binomial((0, 2), {})
# .................. <- 0
# ............... <- 0
# ............ <- 1
# ............ -> binomial((2, 3), {})
# ............... -> binomial((1, 2), {})
# .................. -> binomial((0, 1), {})
# .................. <- 0
# .................. -> binomial((0, 2), {})
# .................. <- 0
# ............... <- 0
# ............... -> binomial((1, 3), {})
# .................. -> binomial((0, 2), {})
# .................. <- 0
# .................. -> binomial((0, 3), {})
# .................. <- 0
# ............... <- 0
# ............ <- 0
# ......... <- 1
# ......... -> binomial((3, 4), {})
# ............ -> binomial((2, 3), {})
# ............... -> binomial((1, 2), {})
# .................. -> binomial((0, 1), {})
# .................. <- 0
# .................. -> binomial((0, 2), {})
# .................. <- 0
# ............... <- 0
# ............... -> binomial((1, 3), {})
# .................. -> binomial((0, 2), {})
# .................. <- 0
# .................. -> binomial((0, 3), {})
# .................. <- 0
# ............... <- 0
# ............ <- 0
# ............ -> binomial((2, 4), {})
# ............... -> binomial((1, 3), {})
# .................. -> binomial((0, 2), {})
# .................. <- 0
# .................. -> binomial((0, 3), {})
# .................. <- 0
# ............... <- 0
# ............... -> binomial((1, 4), {})
# .................. -> binomial((0, 3), {})
# .................. <- 0
# .................. -> binomial((0, 4), {})
# .................. <- 0
# ............... <- 0
# ............ <- 0
# ......... <- 0
# ...... <- 1
# ... <- 5
# ... -> binomial((5, 5), {})
# ...... -> binomial((4, 4), {})
# ......... -> binomial((3, 3), {})
# ............ -> binomial((2, 2), {})
# ............... -> binomial((1, 1), {})
# ............... <- 1
# ............... -> binomial((1, 2), {})
# .................. -> binomial((0, 1), {})
# .................. <- 0
# .................. -> binomial((0, 2), {})
# .................. <- 0
# ............... <- 0
# ............ <- 1
# ............ -> binomial((2, 3), {})
# ............... -> binomial((1, 2), {})
# .................. -> binomial((0, 1), {})
# .................. <- 0
# .................. -> binomial((0, 2), {})
# .................. <- 0
# ............... <- 0
# ............... -> binomial((1, 3), {})
# .................. -> binomial((0, 2), {})
# .................. <- 0
# .................. -> binomial((0, 3), {})
# .................. <- 0
# ............... <- 0
# ............ <- 0
# ......... <- 1
# ......... -> binomial((3, 4), {})
# ............ -> binomial((2, 3), {})
# ............... -> binomial((1, 2), {})
# .................. -> binomial((0, 1), {})
# .................. <- 0
# .................. -> binomial((0, 2), {})
# .................. <- 0
# ............... <- 0
# ............... -> binomial((1, 3), {})
# .................. -> binomial((0, 2), {})
# .................. <- 0
# .................. -> binomial((0, 3), {})
# .................. <- 0
# ............... <- 0
# ............ <- 0
# ............ -> binomial((2, 4), {})
# ............... -> binomial((1, 3), {})
# .................. -> binomial((0, 2), {})
# .................. <- 0
# .................. -> binomial((0, 3), {})
# .................. <- 0
# ............... <- 0
# ............... -> binomial((1, 4), {})
# .................. -> binomial((0, 3), {})
# .................. <- 0
# .................. -> binomial((0, 4), {})
# .................. <- 0
# ............... <- 0
# ............ <- 0
# ......... <- 0
# ...... <- 1
# ...... -> binomial((4, 5), {})
# ......... -> binomial((3, 4), {})
# ............ -> binomial((2, 3), {})
# ............... -> binomial((1, 2), {})
# .................. -> binomial((0, 1), {})
# .................. <- 0
# .................. -> binomial((0, 2), {})
# .................. <- 0
# ............... <- 0
# ............... -> binomial((1, 3), {})
# .................. -> binomial((0, 2), {})
# .................. <- 0
# .................. -> binomial((0, 3), {})
# .................. <- 0
# ............... <- 0
# ............ <- 0
# ............ -> binomial((2, 4), {})
# ............... -> binomial((1, 3), {})
# .................. -> binomial((0, 2), {})
# .................. <- 0
# .................. -> binomial((0, 3), {})
# .................. <- 0
# ............... <- 0
# ............... -> binomial((1, 4), {})
# .................. -> binomial((0, 3), {})
# .................. <- 0
# .................. -> binomial((0, 4), {})
# .................. <- 0
# ............... <- 0
# ............ <- 0
# ......... <- 0
# ......... -> binomial((3, 5), {})
# ............ -> binomial((2, 4), {})
# ............... -> binomial((1, 3), {})
# .................. -> binomial((0, 2), {})
# .................. <- 0
# .................. -> binomial((0, 3), {})
# .................. <- 0
# ............... <- 0
# ............... -> binomial((1, 4), {})
# .................. -> binomial((0, 3), {})
# .................. <- 0
# .................. -> binomial((0, 4), {})
# .................. <- 0
# ............... <- 0
# ............ <- 0
# ............ -> binomial((2, 5), {})
# ............... -> binomial((1, 4), {})
# .................. -> binomial((0, 3), {})
# .................. <- 0
# .................. -> binomial((0, 4), {})
# .................. <- 0
# ............... <- 0
# ............... -> binomial((1, 5), {})
# .................. -> binomial((0, 4), {})
# .................. <- 0
# .................. -> binomial((0, 5), {})
# .................. <- 0
# ............... <- 0
# ............ <- 0
# ......... <- 0
# ...... <- 0
# ... <- 1
# <- 6
# 6
#Palindrome:
@trace
def is_palindromic(s: str) -> bool:
"""
Vérifie si une chaîne de caractères est un palindrome.
"""
if len(s) <= 1:
return True
if s[0] != s[-1]:
return False
return is_palindromic(s[1:-1])
# is_palindromic('ressasser')
# -> is_palindromic(('ressasser',), {})
# ... -> is_palindromic(('essasse',), {})
# ...... -> is_palindromic(('ssass',), {})
# ......... -> is_palindromic(('sas',), {})
# ............ -> is_palindromic(('a',), {})
# ............ <- True
# ......... <- True
# ...... <- True
# ... <- True
# <- True
# True
# is_palindromic('ketib')
# -> is_palindromic(('ketib',), {})
# <- False
# False
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment