Bonjour,
Étant un tout jeune débutant en Caml, j'ai quelques difficultés à programmer une fonction qui reverrait un vecteur d'entiers compris entre 0 et (n-1) où chacun n'apparaitrait qu'une fois et une seule.
Pour l'instant j'ai programmer la boucle suivante qui ne fonctionne pas, car évidemment le fait que l'on puisse tomber deux fois sur le même entier avec random__int crée des problèmes.
Existerait t il une fonction Caml permettant de générer un entier dans un intervalle de manière unique ? Sinon auriez vous quelques indications à me donner pour que je puisse remédier à mon problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 let randbij n = let v = make_vect n (-1) and r,x = ref 0,ref(random__int n) in for k=0 to (n-1) do if v.(!x)=(-1) then v.(!x)<- !r else r := !r-1; r:= !r+1; x:= (random__int n) done; v ;;
Merci,
Remmal.
Partager