CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

test python fourmi.py

Jer1803
Jer1803
Niveau 1
26 novembre 2020 à 20:45:37

Bonsoir à tous, J'aimerai que vous svp que vous m'aidiez à comprendre cette boucle for. Je vous met le code avant et je vous explique ce que je comprend et ce que je ne comprend pas.
import numpy as np import random import math import functools from ant_colony_commente import AntColony def construit_ville(n, x=1000, y=700): """ Tire aléatoirement *n* villes dans un carré ``x * y``, on choisit ces villes de sorte quelles ne soient pas trop proches. """ #deux villes ne pourront pas être plus proches que mind mind = math.sqrt(x * x + y * y) / (n * 0.75) # liste vide lt = [] while n > 0: #on tire aléatoirement les coordonnées d'une ville xx = x * random.random() yy = y * random.random() #on vérifie qu'elle n'est pas trop proche d'aucune autre ville ajout = True for t in lt: d1 = t[0] - xx d2 = t[1] - yy d = math.sqrt(d1 * d1 + d2 * d2) if d < mind: ajout = False # ville trop proche #si la ville n'est pas trop proche des autres, on l'ajoute à la liste if ajout: lt.append((xx, yy)) n = n - 1 # une ville en moins à choisir return lt def distance_euclidienne_carree(villes): """ Calcule la distance euclidienne entre deux points. """ liste_distances = [] for i in range(len(villes)): liste_distances.append([]) for j in range(i): liste_distances[i].append(liste_distances[j][i]) liste_distances[i].append(np.inf) for j in range(i+1, len(villes)): liste_distances[i].append(math.sqrt( ((villes[i][0]-villes[j][0])**2) + ((villes[i][1]-villes[j][1])**2) )) distances = np.array(liste_distances) return distances villes = construit_ville(100) distances = distance_euclidienne_carree(villes) ant_colony = AntColony(distances, 10, 2, 100, 0.95, alpha=1, beta=1) shortest_path = ant_colony.run() print("shortest_path : {}".format(shortest_path))

Jer1803
Jer1803
Niveau 1
26 novembre 2020 à 20:48:14

Au fait c'est au niveau de la 2ème fonction càd distance_euclidienne_carre() au niveau de
for j in range(i):
liste_distances[i].append(liste_distances[j][i])

liste_distances[i].append(np.inf)

for j in range(i+1, len(villes)):
liste_distances[i].append(math.sqrt( ((villes[i][0]-villes[j][0])**2) + ((villes[i][1]-villes[j][1])**2) ))
distances = np.array(liste_distances) que je ne visualise pas bien

Merci d'avance

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment