<jupyter_start><jupyter_text>Exercices additionnels: Structure de données Récursion: Intermédiaire Problème 1: Compter les pairesDans la fonction compte_paires(mot), nous cherchons à compter de "paires" dans le String mot donné.Nous définissons une paire comme étant deux charactères identique séparé par un autre charactère.*   Par exemple "ABCDEFE" contient une paire (les "E" séparé par le F à la fin).Nous considérons que les paires consécutives compte:*   Par exemple: "ABABCCCC" contient 4 paires: A et A, B et B, le premier C et le troisième C, et le deuxième C avec le quatrième CLa fonction compte_paires(mot) compte le nombres de paires dans notre mot de manière récursive bien sure.  Problème 2: Somme spécifique(Peut-être perçu difficile comme problème, mais compte-tenu de l'indice je le place dans intermédiaire)Nous travaillerons avec la fonction somme_spe(i, nombres, but)Cette fonction reçoit trois arguments:*   i: un nombre entier > 0. *   nombres: une liste de nombres entiers.*   but: un nombre entier.Elle retourne un boolean (vrai ou faux).Quand j'appelle la fonction initiallement avec somme_spe(0, nombres, 12), je veux savoir si c'est vrai que je suis capable de trouvée une certaine combinaisons de nombres dans ma liste appelé "nombres" qui donne une somme de 12.Quand j'appelle la fonction somme_spe(2, nombres, 12), je veux savoir si c'est vrai que je peux trouver une certaines combinaisons de nombres dans ma liste à partir du 2ème élément dans la liste. (attention, en informatique la liste à un 0ème).Exemples:*   somme_spe(0,[2,4,8],12) retourne vrai car 4+8=12*   somme_spe(0,[2,4,8],14) retourne vrai car 2+4+8=14*   somme_spe(0,[2,4,7],12) retourne faux car aucune sommes de ces nombres ne peut donner 7*   somme_spe(1,[2,4,8],14) retourne faux car on commence à l'indice i=1, donc le 2 ne peux-être utilisé. Indice:Le cas de base est lorsque (i+1 == len(nombres)). Dans ce cas, la réponse est vrai si nombres[i]==but et faux autrement.L'idée de notre récursion pour un appel somme_spe(i, nombres, but) quelquonque: il y a seulement deux possibilités si on est pas dans le cas de base: 1.   nombres[i] n'est pas choisi pour faire parti de la somme possible2.   nombres[i] est choisi pour faire parti de la somme possibleDans le premier cas nous n'avons qu'à vérifier si somme_spe est possible avec i+=1.Dans le deuxième cas, nous vérifions si la somme est possible avec un i+=1 et but=but-nombres[i].On retourne vrai si somme_spe est vrai récursivement dans un de ces deux cas.<jupyter_code>def somme_spe(i, nombres, but):
  if(cas_de_base): #quel est le cas de base?
    return nombres[i]==but

  #à  faire



###
#Tests pour la fonction
###

nombres=[2,4,8]
print(somme_spe(0,nombres,12))  #Devrait retourner True
print(somme_spe(0,nombres,14))  #Devrait retourner True
print(somme_spe(0,nombres,2))  #Devrait retourner True
print(somme_spe(0,nombres,7))  #Devrait retourner False
print(somme_spe(0,nombres,4))  #Devrait retourner False
print(somme_spe(1,nombres,14))  #Devrait retourner False
def compte_mot(mot):
  if(cas_de_base): #Condition du cas de base
    return     #Quoi faire dans le cas de base
  if (a[0]==a[2]):
    return #Quoi retourner
  else:
    return #Quoi retourner<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.08167024869511821, 'fraction_numerical': 0.02302732575990175, 'mean_word_length': 5.101123595505618, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 6, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '243945', 'license': 'MIT', 'n_tokens_mistral': 1183, 'n_tokens_neox': 1190, 'n_words': 441, 'path': 'Exercices_additionnels_de_programmation_récursive.ipynb', 'repo_name': 'egouello/TermNSI', 'size': '3257'}