slvpartage:cartes_d_artistes
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
slvpartage:cartes_d_artistes [2021/05/09 14:07] – [Pré etude] cyberyunohost | slvpartage:cartes_d_artistes [2021/05/17 15:04] (Version actuelle) – cyberyunohost | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
Echange de cartes d' | Echange de cartes d' | ||
+ | ( https:// | ||
- | Etude d'un projet de logiciel par philippe. | + | Etude d'un projet de logiciel par philippe |
Le projet pourra être présenté à slv pour hébergement. | Le projet pourra être présenté à slv pour hébergement. | ||
Ligne 9: | Ligne 10: | ||
====== Le cahier des charges ====== | ====== Le cahier des charges ====== | ||
- | La demande émane de @guillemettesilvand@framapiaf.org ( sur le réseau mastodon de framapiaf ) | + | La demande émane de @guillemettesilvand@framapiaf.org ( sur le réseau mastodon de framapiaf ) qui propose d' |
{{: | {{: | ||
Ligne 57: | Ligne 58: | ||
Fait mimine ... | Fait mimine ... | ||
+ | |||
+ | ===== Utilisation de LibreOffice Macro Basic + Calc ===== | ||
+ | |||
+ | Première implémentation de l' | ||
+ | |||
+ | Sur le GitLab de framagit : https:// | ||
+ | |||
+ | Il y a un exemple de feuille sur laquelle on peut lancer la macro qui prend les entrées dans une zone prédéfinie de la feuille et re-rempli une zone de la feuille. | ||
+ | |||
+ | |||
+ | Lire le LISEZMOI sur https:// | ||
+ | |||
+ | Premier tuto vidéo https:// | ||
+ | |||
+ | |||
===== Utilisation de LibreOffice Base ===== | ===== Utilisation de LibreOffice Base ===== | ||
Ligne 76: | Ligne 92: | ||
S'il pouvait y avoir un système de chiffrement de la base de donnée qui protège la visibilité de ses données à l' | S'il pouvait y avoir un système de chiffrement de la base de donnée qui protège la visibilité de ses données à l' | ||
+ | |||
+ | |||
+ | |||
+ | ===== Implementation ===== | ||
+ | |||
+ | algo1 | ||
+ | |||
+ | Focalisation sur la phase de répartition et distribution des cartes. | ||
+ | |||
+ | ==== répartition des échanges avec certains échanges forcés ==== | ||
+ | |||
+ | Un première répartition plus ou moins manuelle pourrait être faite et l' | ||
+ | |||
+ | Un algorithme incrémental serait judicieux, c'est à dire un algorithme qui permettre de rajouter des cartes à des participants et de rajouter des participants en regénérant de nouveaux échanges sans remettre en question les échanges initiaux. | ||
+ | |||
+ | Un algorithme de vérification/ | ||
Ligne 98: | Ligne 130: | ||
réalisée par l' | réalisée par l' | ||
+ | |||
+ | Cette phase est proposée en local via une feuille de caclul LibreOffice avec le prototype https:// | ||
==== Phase de lancement ==== | ==== Phase de lancement ==== | ||
Ligne 220: | Ligne 254: | ||
|Campagne(*)|campagne|| | |Campagne(*)|campagne|| | ||
|Nombre|cartes|nombre de cartes promises| | |Nombre|cartes|nombre de cartes promises| | ||
+ | |||
+ | |||
+ | ===== Algorithme ===== | ||
+ | |||
+ | ==== algo1 quadratique ==== | ||
+ | |||
+ | |||
+ | L' | ||
+ | Il permet cependant à des participants avec une faible nombre de carte d' | ||
+ | |||
+ | Avec n utilisateurs il y a n * ( n - 1 ) / 2 paires possibles de participants différents. | ||
+ | La complexité est donc proportionnelle au carré du nombre de participants. | ||
+ | |||
+ | Créer la liste des participants pouvant échanger entre eux en respectant leur groupes | ||
+ | |||
+ | pour cette liste : | ||
+ | |||
+ | a. Tant la liste contient plus d'un participant; | ||
+ | Supprimer le premier de la liste et l' | ||
+ | Si l' | ||
+ | ; Reconstruire la liste des participants ayant encore des cartes à échanger, si elle contient plus d'un participant, | ||
+ | |||
+ | Ici la liste peut encore contenir un participant avec des cartes en excès. Il sera traité plus tard. | ||
+ | |||
+ | On recommence le même procédé pour chaque groupe sachant que certains participants peuvent appartenir à plusieurs groupes, l' | ||
+ | |||
+ | |||
+ | (*) la création de paires doit se faire de façon intelligente pour éviter de créer plusieurs fois les même paires dans une même passe ou bien même dans plusieurs. | ||
+ | |||
+ | ==== algo2 linéaire ==== | ||
+ | |||
+ | Il existe une autre manière d' | ||
+ | |||
+ | pour chaque participant ajouter dans la liste autant de cartes avec la référence au participant qu'il veut en échanger. | ||
+ | |||
+ | Retirer deux cartes de la liste (*) | ||
+ | |||
+ | - S'il n'y a pas assez de cartes c'est la fin. | ||
+ | |||
+ | - Si les cartes sont identiques : | ||
+ | Tant qu' | ||
+ | S'il n'y a plus de cartes, c'est la fin. | ||
+ | S'il y a une carte différente : enregistrer la carte initiale et celle ci dans les appariement. | ||
+ | Poser les cartes non enregistrées sur le tas des cartes non utilisés du participant, | ||
+ | |||
+ | - Si les cartes sont différentes, | ||
+ | |||
+ | Une fois la liste vide regarder s'il reste plus d'un participant avec des cartes inutilisées, | ||
+ | |||
+ | (*) on peut retirer les cartes en tête cependant dans ce cas il est préférable d' | ||
+ | |||
+ | |||
+ | |||
slvpartage/cartes_d_artistes.1620562049.txt.gz · Dernière modification : 2021/05/09 14:07 de cyberyunohost