Calculer distance euclidienne
Fermé
jj1k
Messages postés
30
Date d'inscription
jeudi 8 juin 2017
Statut
Membre
Dernière intervention
3 septembre 2017
-
23 juin 2017 à 14:16
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 23 juin 2017 à 22:50
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 23 juin 2017 à 22:50
A voir également:
- Distance euclidienne java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Allumer pc à distance - Guide
- Java apk - Télécharger - Langages
- Java décompiler - Télécharger - Langages
1 réponse
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
23 juin 2017 à 19:32
23 juin 2017 à 19:32
Bonjour,
Rien de nouveau par rapport à tes autres discussions, tu lis ton fichier texte ligne par ligne, tu map avec des objets représentant chaque ligne et tu agrèges les résultats...
Ce qui donne (en considérant les 3 premières villes du fichier)
On peut éventuellement supprimer les couples inutiles en rajoutant un
Rien de nouveau par rapport à tes autres discussions, tu lis ton fichier texte ligne par ligne, tu map avec des objets représentant chaque ligne et tu agrèges les résultats...
import java.awt.Point; import java.nio.file.Files; import java.nio.file.Paths; import java.util.List; import java.util.stream.Collectors; class Ville { final int id; final double x, y; Ville(String str) { String[] tab = str.split(","); id = Integer.parseInt(tab[0]); x = Double.parseDouble(tab[1]); y = Double.parseDouble(tab[2]); } } class Parcours { final int a, b; final double distance; Parcours(Ville a, Ville b) { this.a = a.id; this.b = b.id; distance = Point.distance(a.x, a.y, b.x, b.y); } public String toString() { return String.format("(%d,%d)=%f", a, b, distance); } } public class Test{ public static void main(String[] args) throws Exception { List<Ville> villes = Files.lines(Paths.get("C:/test.txt")).skip(1) .map(Ville::new).collect(Collectors.toList()); List<Parcours> parcours = villes.stream().flatMap(a -> villes.stream().map(b -> new Parcours(a, b))) .collect(Collectors.toList()); System.out.println(parcours); } }
Ce qui donne (en considérant les 3 premières villes du fichier)
[(0,0)=0,000000, (0,1)=5,301141, (0,2)=9,036998,
(1,0)=5,301141, (1,1)=0,000000, (1,2)=14,021260,
(2,0)=9,036998, (2,1)=14,02126, (2,2)=0,000000]
On peut éventuellement supprimer les couples inutiles en rajoutant un
filter(b -> a.id < b.id)pour obtenir :
[(0,1)=5,301141, (0,2)=9,036998, (1,2)=14,021260]
23 juin 2017 à 22:33
mais comment je peux récupérer les résultats (les distances) dans un fichier txt ?
23 juin 2017 à 22:50