• Aucun résultat trouvé

Mise à 1 des éléments de la ligne d'indice a M[a

N/A
N/A
Protected

Academic year: 2022

Partager "Mise à 1 des éléments de la ligne d'indice a M[a"

Copied!
2
0
0

Texte intégral

(1)

# ======================= #

# Le problème des n tours #

# ======================= #

## Importations

from math import factorial from numpy import array, zeros

## fonction Prise

# Permet la mise à jour de l'échiquier (cases en prise) dès qu'une nouvelle tour

# est placée.

# Arguments :

# M : l'échiquier (tableau numpy) dans son état courant (i.e. venant de recevoir

# une nouvelle tour.).

# a et b : les indices de la nouvelle tour dans le tableau M.

def Prise(M,a,b):

# Mise à 1 des éléments de la ligne d'indice a M[a,:] = 1

# Mise à 1 des éléments de la colonne d'indice b M[:,b] = 1

# Mise à 2 de l'élément d'indices a et b M[a,b] = 2

# Renvoi de l'échiquier à jour return(M)

## fonction Place

# Fonction récursive permettant le placement des tours def Place(T,N):

global n, S

# Pour chaque ligne de l'échiquier, on cherche à placer la tour dans la # colonne n-N

for i in range(n):

# La case (i,n-N) est libre ! if T[i,n-N] == 0:

# On recopie l'échiquier dans un nouveau tableau T2 = array(T)

# On positionne, dans le nouveau tableau, une tour en (i,n-N) T2[i,n-N] = 2

# On met à jour T2 T2 = Prise(T2,i,n-N) if N == 1:

# Il n'y a qu'une tour à placer (N=1) et on a pu le faire : on a # une nouvelle solution !

# On incrémente le nombre de solutions (S) et on affiche la # solution courante (T2)

S += 1

print('Solution N°',S,':') print(T2,'\n')

# On a pu placer une tour mais il en reste N-1 à placer : appel # récursif à la fonction Place

else:

Place(T2,N-1) return()

## DEBUT DU SCRIPT ##

# Saisie de la taille de l'échiquier n = -1

while n <= 0:

n = int(input('Nombre de tours à placer ? '))

# Initialisation de l'échiquier et du nombre de solutions E = zeros((n,n))

S = 0

# Nombre de solution(s)

s = 'Il y a au total ' + str(factorial(n)) + ' solution' if n > 1 :

print(s + 's.') else:

1

(2)

print(s + '.')

# Appel initial de la fonction place Place(E,n)

## FIN DU SCRIPT ##

2

Références

Documents relatifs

MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR ET DE LA RECHERCHE SCIENTIFIQUE Université

- Mutualisation des moyens mobilisés par des acteurs divers mais réunis autour d'un même objectif. - Partage, valorisation de la connaissance via la centralisation dans des bases

Le projet WalOUS vise la conception de méthodologies opérationnelles de cartographie de l’occupation et de l’utilisation du sol en s’appuyant notamment sur

Figure 6 : Part des nouvelles cellules commerciales créées entre 2014 et 2019 au sein d’un développement commercial d’envergure qui sont situées dans une polarité de base

Les diagrammes présentés dans cette annexe résument, d’une part la méthodologie préconisée par la RFS N°I.3.c (premier diagramme), d’autre part, pour le milieu

De Sam Karmann - 1992 00:08:44 - France - Fiction Avec : Brigitte Auber, Patrick Jamain, Jacques Martial, Christian Rauth, Daniel Rialet Musique : Jean Mallet Production :

agissant en qualité d'ayant droit de ………, autorise à titre non exclusif les Cahiers d'Études Germaniques à reproduire et à diffuser dans le cadre du programme PERSÉE

Create a forum – Data Space Support Centre - where stakeholders can identify common solutions and offer and obtain support for the creation of sectoral data spaces. Common