Il y a actuellement 715 visiteurs
Dimanche 22 Décembre 2024
accueilactualitésdossierscomparer les prixtélécharger gratuitement vos logicielsoffres d'emploiforum informatique
Connexion
Créer un compte

nadia-c

Ce membre n'a pas encore choisi d'avatar
Visiteur
Visiteur
Nom d'utilisateur:
nadia-c
Groupes:

Contacter nadia-c

Statistiques de l’utilisateur

Inscription:
22 Avr 2007 18:46
Dernière visite:
24 Avr 2007 10:07
Messages:
1 (0.00% de tous les messages / 0.00 messages par jour)
Forum le plus actif:
Forum Linux et systèmes d'exploitation libres
(1 Message / 100.00% des messages de l'utilisateur)
Sujet le plus actif:
Calcul d'une distance sur une grille
(1 Message / 100.00% des messages de l'utilisateur)

Les derniers messages de nadia-c

Message Calcul d'une distance sur une grille
Bonjour,
cela fait 4 mois que j'apprends à me servir du langage R et j'ai un projet a présenter pour mes exams. je doit créer un fonction qui calcule des ditances entre des points.


Soit une grille G de Z*Z de taille (2,2) (puis (3,3)...).
Chaque point de la grille est déterminé par ses coordonnées entières X,Y, et prend une valeur binaire +1 ou -1 (notée x).
La grille est représentée par une matrice taille (2,2) (puis (3,3)...), dont les coefficients ont pour valeur +1 ou -1.
On définit sur cette grille une distance entre deux points A et B de coordonnées respectives (x1, y1) et (x2,y2) par : d(A,B) = abs(x1-x2) + abs(y1 - y2)
La matrice des distances pour une grille G de taille (n,n) (ayant donc n2 points) est une matrice D de taille (n2, n2) dont l'élément de position i,j correspond à la distance entre les deux points
numérotés i et j.
On souhaite :
1. Calculer cette matrice de distances
2. Calculer pour une grille donnée (choisie au hasard) la fonction U(G) qui est la somme des valeurs xixj pour tous les couples de points (i,j) vérifiant d(A,B)=1
Réaliser les deux étapes précédentes pour des grilles choisies au hasard et de différentes
tailles (n=2,3,4,5...)

Pour la premiere question j'ai réussi a créer une fonction qui calcule la distance entre deux points:

d=function(a,b){
a=c(x1,y1)
b=c(x2,y2)
di=abs(x1-x2)+abs(y1-y2);
print(di)
}
x1=0
y1=3
x2=0
y2=1

> d(a,b)
[1] 2

Maintenant, si j'ai une matrice (2,2) j'ai donc 4 points :
a=0,0
b=1,0
c=1,1
d=0,1
J'assaie de crée une fonction qui calcule la distance entre n'importe quel points, c'est a dire, si j'ecrit : d(c,b) la fonction calcule la distance entre le point c et le point b et affiche donc 1.
J'ai pensé qu'il fallait créer une boucle, mais je n'y arrive pas :

d=function(a,b){
a=c(x1,y1)
b=c(x2,y2)
c=c(x3,y3)
d=c(x4,y4)
di=abs(x[i]-x[j])+abs(y[i]-y[j]);
for(i in 1:4)
for(j in 1:4)
print(di);
}
x1=0
y1=0
x2=1
y2=0
x3=1
y3=1
x4=1
y4=0

Si quelqu'un peut m'aider a répondre à la premiere question... merci.



.: Nous contacter :: Flux RSS :: Données personnelles :.