Forum de FilmDeCulte

Le forum cinéma le plus méchant du net...
Nous sommes le 19 Déc 2024, 08:50

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 880 messages ]  Aller à la page Précédente  1 ... 47, 48, 49, 50, 51, 52, 53 ... 59  Suivante
Auteur Message
MessagePosté: 09 Juin 2017, 16:40 
rotary [Bot] a écrit:
Image

Un petit script pour l'analyse tactique d'un combat de judo.
Tactiquement, un combat se résumerait facilement dans un tableau. Chaque ligne ressemblerait à un truc de ce genre :
A 1 5 3 4 2 -
Le combattant A tente de passer la technique "1", B riposte par "5", C fait "3" etc. Le tiret final signale celui qui rompt le combat en ayant perdu ou été dominé.

Le but de cette transcription est d'avoir un résumé statistique clair des premières initiatives et de leur succès. Genre :
dans ce combat, A a commencé :
- par "1" 68 % du temps
- par "3" 20 % du temps
etc.

B a réagi à "1"
- par "5" 71 % du temps
- par "2" 12 % du temps

Jusqu'à présent, tous les analystes (moi le premier) font leurs "stats" sans support écrit, à la louche. Le jugement final peut être correct. Mais j'aimerais automatiser le processus.

Question :
sans aller jusqu'à une base de données synthétisée à coups de requêtes MySql, il y a un moyen simple de faire ça ?


Oui, avec un Trie (ou arbre de la Briandais) que tu peux scripter rapidement en Python on en Java https://en.wikipedia.org/wiki/Trie
https://fr.wikipedia.org/wiki/Arbre_radix

https://community.oracle.com/thread/2070706

La librairie Java Apache common contient déjà des classes adéquates :https://commons.apache.org/proper/commons-collections/

http://commons.apache.org/proper/common ... aTrie.html

(tu devras coder un peu pour créer le programme qui va mettre à jour et stocker les données,)

Autre solution : une base graphe comme Neo4J https://neo4j.com/ (qui a déjà sa propre interface, donc peut-être rien à coder, mais il faut apprendre un peu leur langage de requête Cypher, l'équivalent du SQL)


Dernière édition par Gontrand le 09 Juin 2017, 17:18, édité 1 fois.

Haut
  
 
MessagePosté: 09 Juin 2017, 17:15 
Par contre si tu essayes de représenter cela dans une base MySQL (ou mieux PostgreSQL) tu vas t'arracher les cheveux.

Le plus réaliste est alors de stocker les match dans une chaîne de caractère (un enregistrement par match) sous cette forme /5/4/3/2/1/5/.... où les positions impaires sont les prises du premier jouer et les paires celles du second, et de calculer les statistiques via les fonctions regex du SQL...
En fait c'est peut-être le plus simple en terme de logiciel à manipuler.


Haut
  
 
MessagePosté: 10 Juin 2017, 12:35 
Hors ligne
Le quoteur fou
Avatar de l’utilisateur

Inscription: 23 Juil 2005, 17:40
Messages: 11786
Localisation: Hill Valley
Merci. Je vais creuser ta seconde proposition.

_________________
Tennis de Table Bordeaux


Haut
 Profil  
 
MessagePosté: 10 Juin 2017, 12:43 
Hors ligne
Expert
Avatar de l’utilisateur

Inscription: 18 Aoû 2005, 23:40
Messages: 19472
Localisation: Rebirth Island
Gontrand a écrit:
Par contre si tu essayes de représenter cela dans une base MySQL (ou mieux PostgreSQL) tu vas t'arracher les cheveux.

Le plus réaliste est alors de stocker les match dans une chaîne de caractère (un enregistrement par match) sous cette forme /5/4/3/2/1/5/.... où les positions impaires sont les prises du premier jouer et les paires celles du second, et de calculer les statistiques via les fonctions regex du SQL...
En fait c'est peut-être le plus simple en terme de logiciel à manipuler.


Quel intérêt de faire du SQL pour ça ? Stocker dans n'importe quel forme de tableau de n'importe quel langage suffit. Et pas besoin de Regex quand une bête fonction de split d'après le caractère / suffit. Et de manière générale, toujours préférer d'éviter les regex, sauf si obligation absolue.


Haut
 Profil  
 
MessagePosté: 10 Juin 2017, 15:49 
C'est vrai qu'un bête fichier délimité peut faire l'affaire (voire un bête Excel et un peu de VBA) peuvent aussi bien faire l'affaire mour stocker les données, mais une base de données permettrait de produire facilement les statistiques d'un même joueur ou d'une même prise, simplifierait le stockage des données , et ne demande de coder quasi rien à coder si tu peux utiliser des outils comme phpmyadmin.
C'est vrai que les regex sont lents et un tableau d'entier plus rapide et économe en mémoire, mais pour des volumes de données raisonnables ce n'est pas trop gênant. Et pour détecter et comptabliser les prises précédents ou suivants une prise donnée, un regex sera plus facile à manipuler qu'un tableau, où il faudra jouer avec les variables d'indices et gérer soi-même le parcours de toutes les données.

PostgreSQL a des fonctions regex très puissantes, des types tableaux, et une fonction "unnest" très sympa pour "basculer" les tableaux verticalement, dans des vues ou sous-requêtes, c'est je crois la solution que j'emploierais.
.


Haut
  
 
MessagePosté: 10 Juin 2017, 16:04 
Hors ligne
Expert
Avatar de l’utilisateur

Inscription: 18 Aoû 2005, 23:40
Messages: 19472
Localisation: Rebirth Island
Le pauvre gars a juste besoin d'un petit script qui fait 3 boucles imbriquées, et toi tu lui proposes d'installer un SGBDR.

T'es consultant ?


Haut
 Profil  
 
MessagePosté: 10 Juin 2017, 16:46 
Hors ligne
Expert

Inscription: 15 Juil 2009, 21:22
Messages: 7336
deudtens a écrit:
T'es consultant ?


Tellement ça. :lol:


Haut
 Profil  
 
MessagePosté: 10 Juin 2017, 17:04 
Si j'étais consultant je lui aurais dit "il n'y a qu'Oracle pour faire cela" ou "tu vas devoir changer d'O.S.".

(Et 3 boucles cela commence à devenir chiant à programmer )

Et Postgresql s'installe plus facilement que Python finalement.


Haut
  
 
MessagePosté: 11 Juin 2017, 14:11 
J'ai réfléchi à la question et je me suis demandé si tout compte fait indiquer les prises d'un match dans les colonnes d'un Excel et utiliser une table pivot pour les statistiques...


Haut
  
 
MessagePosté: 11 Juin 2017, 14:24 
Hors ligne
Expert
Avatar de l’utilisateur

Inscription: 18 Aoû 2005, 23:40
Messages: 19472
Localisation: Rebirth Island
Non vaut mieux installer Postgre je pense, c'est tellement simple.


Haut
 Profil  
 
MessagePosté: 11 Juin 2017, 14:33 
Sous windows Postgresql ça s'installe en deux clics avec tout (plus facilement que MySQL ou MariaDB) . Finalement jouer avec les versions de python dans les paths ou debugger et devoir recompiler un programme java avec un jar externe est pas plus simple ...


Haut
  
 
MessagePosté: 11 Juin 2017, 14:36 
Hors ligne
Expert
Avatar de l’utilisateur

Inscription: 18 Aoû 2005, 23:40
Messages: 19472
Localisation: Rebirth Island
J'adore comment tu sors des buzzwords avec un liant qui sonne faux. T'es un commercial compétent dans une SSII ?


Haut
 Profil  
 
MessagePosté: 11 Juin 2017, 14:37 
Postgresql c'est pas un buzzword. C'est ma vie.


Haut
  
 
MessagePosté: 26 Juil 2017, 08:58 
Hors ligne
Expert
Avatar de l’utilisateur

Inscription: 17 Aoû 2005, 14:46
Messages: 3803
Localisation: Dans le nord du sud.
Mes enfants jouent chacun sur leur tablette à la même application (la baie du paradis). Problème, la deuxième tablette se met à jour à chaque démarrage, et installe les mêmes développements que le premier compte.
Comme ils n'ont pas de compte google, est-ce qu'il y a un moyen pour que les 2 applications soient différenciées, et que chacun puisse jouer à "son" jeu, et pas sur le même compte ?


Haut
 Profil  
 
MessagePosté: 16 Aoû 2017, 11:19 
Hors ligne
Sacré trou du cul
Avatar de l’utilisateur

Inscription: 19 Juin 2005, 22:59
Messages: 11249
Chez Apple y'a le compte famille, après t'as un compte parent et tu peux créer des comptes enfants (et par ex s'ils tentent d'acheter une app, ça envoie une notif sur ton iphone et tu acceptes ou non le paiement). Du coup les achats sont partagés mais par les configs/documents... Je crois que GG a ça (ou à ça dans ses cartons), donc p-e que ça vaudrait le coup de regarder et de créer un compte pour chaque enfant.

_________________
Delirium Tremens


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 880 messages ]  Aller à la page Précédente  1 ... 47, 48, 49, 50, 51, 52, 53 ... 59  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  
Powered by phpBB® Forum Software © phpBB Group
Traduction par: phpBB-fr.com
phpBB SEO
Hébergement mutualisé : Avenue Du Web