IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Défis C Discussion :

3ème défi C & C++ : Découverte du jeu de l'Ane Rouge


Sujet :

Défis C

  1. #41
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Effectivement, on obtient 81 coups si on accepte pour 1 coup le déplacement d'une seule pièce d'une ou deux lignes ou colonnes ou d'une ligne et d'une colonne (pour les carrés 1x1).

    Le critère avec coups "doubles" s'implémente simplement dans un programme écrit pour coups "simples". Les performances obtenues sont très analogues dans les deux cas (En C, 0.14s sur Athlon 32 bits 2.2Ghz)

    La solution que j'ai obtenue comportait donc 81 coups dont 39 coups "doubles" ce qui, ramené au critère du défi, donnerai 120 coups "simples", soit plus des 116 trouvés en implémentant uniquement les critères du défi. Autrement dit, une solution optimale avec coups "doubles" ne permet pas d'en déduire une solution optimale en coups "simples".

    C'est assez marrant finalement l'Ane Rouge
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !
      0  0

  2. #42
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut
    Citation Envoyé par jfouche
    En ce qui me concerne : 1 seconde pour la force brute à 1.5 GHz
    Par force brute j'entends rechercher en largeur d'abord et examiner toutes les positions atteignables en 116 mouvements, sans en court-circuiter aucune. 1s ça m'impressionne parce que je ne vois pas quelle optimisation je pourrais bien ajouter :
    • j'ai une table de transposition de type ABR (j'ai essayé les AVL, aucun gain, donc mon ABR est équilibré)
    • mon insertion dans la table de transposition se fait par lot (fusion d'ABR, temps linéaire en nombre d'éléments insérés)
    • je reconnais les plateaux identiques quelque soient les permutations de pièces
    • je reconnais les mouvements regressifs (court-circuitage de l'insertion dans la table de transposition)


    Citation Envoyé par diogene
    Le critère avec coups "doubles" s'implémente simplement dans un programme écrit pour coups "simples". Les performances obtenues sont très analogues dans les deux cas (En C, 0.14s sur Athlon 32 bits 2.2Ghz)
    J'ai tenté ça aussi.
    Même performance si je n'autorise les coups doubles que sur les barres.
    Et plus de deux fois plus lent si j'autorise aussi les coups doubles sur les carrés
    Le problème étant que les coups doubles génèrent plus de nouvelles positions (plus de largeur) qu'ils ne m'économisent de mouvements (moins de profondeur).
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.
      0  0

  3. #43
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Le temps d'exécution est dépensé pour la très grande partie à savoir si une configuration a déjà été trouvée ou non et c'est cette recherche qui doit être optimisée.
    J'avais pensé à implémenter une reconnaissance des positions identiques à une symétrie près, parce que je n'avais aucune idée du nombre de configurations à examiner (par la "force brute") avant d'arriver au résultat. Ceci allonge notablement cette recherche. Lorsque j'ai vu que le nombre de configurations différentes, sans prendre en compte les symétries, avant d'arriver au résultat était si faible ( # 24000 configurations) j'ai jugé que c'était inutile.

    Même performance si je n'autorise les coups doubles que sur les barres.
    Et plus de deux fois plus lent si j'autorise aussi les coups doubles sur les carrés
    Ce ne devrait pas changer notablement (et ça ne le change pas) le temps d'exécution, et ce parce que il y a peu de configurations qui permettent de l'envisager (il faut que les deux trous forment un rectangle, que le carré ne soit pas 2x2, un coup double sur un barre horizontale implique que les trous forment un rectangle 1x2 horizontal,... )

    Le problème étant que les coups doubles génèrent plus de nouvelles positions (plus de largeur) qu'ils ne m'économisent de mouvements (moins de profondeur).
    Engendrer de nouvelles positions n'affecte pas les performances, c'est chercher si on ne les a pas déjà trouvées qui est pénalisant.

    De toute façon, ce n'est pas une bonne démarche pour trouver la solution au problème posé (où on ne tolère que les coups simples)
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !
      0  0

  4. #44
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 153
    Points : 168
    Points
    168
    Par défaut
    Salut

    Citation Envoyé par SpiceGuid Voir le message
    Par force brute j'entends rechercher en largeur d'abord et examiner toutes les positions atteignables en 116 mouvements, sans en court-circuiter aucune. 1s ça m'impressionne parce que je ne vois pas quelle optimisation je pourrais bien ajouter :
    • j'ai une table de transposition de type ABR (j'ai essayé les AVL, aucun gain, donc mon ABR est équilibré)
    • mon insertion dans la table de transposition se fait par lot (fusion d'ABR, temps linéaire en nombre d'éléments insérés)
    • je reconnais les plateaux identiques quelque soient les permutations de pièces
    • je reconnais les mouvements regressifs (court-circuitage de l'insertion dans la table de transposition)
    Je ne sais pas trop si il n'y a qu'une méthode de force brute. De plus, je ne comprends pas les termes utilisés (table de transposition de type ABR, AVL, ...), il faudrait que je regarde ça. Peut être ma méthode est elle un peu plus que de la force brute. Je confirme que ma principale (et de loin) optimisation à été sur le moyen de savoir si une position à déjà été atteinte. Ma solution m'a offert un gain de plus de 1000% (!).

    Je n'utilise que de C++, pas de C. Je ne suis pas sûr que l'un à un avantage sur l'autre, en terme de simplicité d'implémentation d'un algo, ainsi que des performances obtenues.
    --
    Jérémie
    Jérémie
      0  0

  5. #45
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut
    Le temps d'exécution est dépensé pour la très grande partie à savoir si une configuration a déjà été trouvée ou non et c'est cette recherche qui doit être optimisée.
    C'est ce que j'ai fait puisque j'ai une complexité optimale pour la recherche/insertion dans ma table de transposition.
    Mon problème principal c'est que j'examine en tout 332215 positions.

    ABR = arbre binaire de recherche
    AVL = arbre binaire équilibré Adelson Velskii Landis
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.
      0  0

  6. #46
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Mon problème principal c'est que j'examine en tout 332215 positions
    Oui, ton problème est là. C'est 10 fois trop.
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !
      0  0

  7. #47
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 39
    Points : 47
    Points
    47
    Par défaut
    Pour ce qui est de la méthode utilisée pour vérifier si une solution a déjà été trouvée... j'ai fait une table de hachage maison, en choisissant 50000 entrées la table prend très peu de place et stocke extrêmement efficacement les configurations trouvées.
    Il suffit que le hash code ne dépende que de la géométrie des pièces et leur disposition pour que ça marche bien.

    Je rappelle mes résultats : 0.4 seconde @1.8 GHz pour calculer TOUTES les configurations atteignables à partir de celle de départ. Avec l'exemple donné, j'ai 964 solutions différentes et plus de 25000 configurations dans la table de hachage.
    Je ne me suis intéressé qu'aux coups simples.

    Pour retenir le plus court chemin (solution en un nombre de coups minimal), j'ai utilisé l'algorithme de Dijkstra.
    Mais : quand on parle de force brute... j'ai bien entendu essayé de trouver les solutions en limitant le nombre de mouvements à 116. Seulement, le programme ne trouve aucune solution... il faut lui autoriser plus de mouvements, voire pas de restriction, pour que, à force de tester des configurations, il en trouve et qu'il recalcule le plus court chemin...
    Donc je prends mes résultats avec des pincettes, vu que ce résultat est aberrant (mais j'ai vérifié que les chemins trouvés sont justes). C'est rageant ce bug débile.
      0  0

  8. #48
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    50000 entrées, c'est beaucoup pour stocker 25000 configurations.
    La table de hachage ne doit pas servir à grand chose et tu identifies les configurations de jeu presque uniquement sur la clé de hachage. Tout dépend de la complexité et du temps de calcul de cette clé.
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !
      0  0

  9. #49
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 39
    Points : 47
    Points
    47
    Par défaut
    Oui, en effet 50000 entrées c'est beaucoup par rapport à ce qui serait strictement nécessaire. Mais la taille du tableau d'entrées est vraiment négligeable. Et ainsi j'ai une grande efficacité pour ajouter ou retrouver une configuration dedans, vu qu'il y a pratiquement correspondance directe.

    Evidemment, pour des problèmes qui demanderaient de stocker beaucoup plus de données, un arbre bien construit pourrait être une meilleure idée. Dans le cas de ce jeu, la table de hachage est très simple à coder, je n'en dirais pas autant pour un arbre, j'y avais (un peu) réfléchi.

    Mais mon choix principal a été au niveau du nombre d'allocations mémoire nécessaires pour remplir la structure choisie... avec ma table de hachage (presque vide, en plus) on trouve immédiatement ce qu'on veut. Pour ajouter une configuration, c'est une seule allocation (dans mon cas. la structure de données utilisée pour représenter une configuration pourrait être généralisée, et il faudrait plusieurs allocations pour dupliquer la configuration dans la table), alors que pour un arbre il faut allouer chaque noeud...
    Et faire une allocation mémoire, même pour des faibles tailles, c'est un appel système assez coûteux. Faites des essais et vous verrez !

    J'avais pensé à une structure de type "trie", mais c'est équivalent à un arbre du point de vue des allocations.

    Le calcul de la clé est un calcul utilisant la position et les dimensions des pièces sur le plateau, c'est très rapide.
    Là où je pense que mon programme pourrait être amélioré, c'est surtout dans la recherche des pièces qui peuvent être bougées... j'ai fait la manière brutale, en testant chaque pièce dans les 4 directions. Considérer les cases vides plutôt que les pièces serait dans ce jeu bien plus économique, je ne serais pas étonné que le gain de temps soit un facteur 2 voire 3.

    Mais à nouveau, pour ce jeu en particulier, et pour les règles qui ont été demandées, un code simple à écrire à facile à vérifier, mais un peu plus lourd question performances, est très suffisant... et la flemme de grapiller sur 0.4 seconde se fait vite sentir
      0  0

  10. #50
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut
    Citation Envoyé par komput
    Considérer les cases vides plutôt que les pièces serait dans ce jeu bien plus économique, je ne serais pas étonné que le gain de temps soit un facteur 2 voire 3.
    Considérer les cases vides, c'est ce que j'ai fait.
    Et je n'arrive toujours pas à descendre à moins de 21s × Ghz.

    Citation Envoyé par diogene
    Oui, ton problème est là. C'est 10 fois trop.
    Il n'y a pas d'erreur dans mon code.
    Ce nombre de positions vient de ce que j'explore l'espace en largeur d'abord et donc je trouve 8 solutions (pour rien puisqu'en fait elles sont similaires) mais pour ça je dois parcourir plus de 10 fois plus de positions.
    Apparemment vous feriez une recherche en profondeur d'abord que vous arrêtez à la première solution trouvée. Par contre avec cette méthode je ne comprends pas bien comment vous pouvez être vraiment certains de tenir la (ou au moins une des) solution la plus courte.
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.
      0  0

  11. #51
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Ce nombre de positions vient de ce que j'explore l'espace en largeur d'abord et donc je trouve 8 solutions (pour rien puisqu'en fait elles sont similaires) mais pour ça je dois parcourir plus de 10 fois plus de positions.
    Oui, je suis d'accord avec cette méthode, mais je ne comprend pas pourquoi vous avez ce facteur 10.
    A moins que peut être vous n'écartiez pas les configurations déjà obtenues avec un nombre de coups moindre.
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !
      0  0

  12. #52
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut
    Je conserve toutes les configurations, même la configuration initiale est comprise dedans. C'est obligatoire puisque je n'interdis pas le mouvement Up L.

    edit: pour ceux qui veulent pousser leur programme jusqu'à ses limites je recommande cette page avec des puzzles jusqu'à plus de 1000 mouvements minimum.
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.
      0  0

  13. #53
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut Statistiques
    Bonjour,

    Quelques statistiques sur le jeu dans le cas d'un plateau 5l x 4c avec :

    • 4 carrés de 1 case
    • 2 carrés libres de 1 case
    • 4 rectangles verticaux de 2 cases
    • 1 rectangle horizontal de 2 cases
    • 1 carré de 4 cases


    1. Nombre de plateaux différents possibles : 65 880
    2. Statistiques descriptives sur le nombre de plateaux liés à un autre par un mouvement simple


    • Moyenne : 3,139 plateaux liés
    • Ecart-type de la population : 0,956
    • Maximum : 7 (8 plateaux seulement ont 7 plateaux liés)
    • Minimum : 1 (1368 plateaux n'ont qu'un seul plateau lié)
    • Médiane : 3
    • 1er quartile : 2
    • 3ème quartile : 4
    • Kurtosis normalisé : -0,189 (pratiquement pas d'aplatissement)
    • Skewness : 0,272 (légère trainée à droite)
    Graphe


    Amicalement,

    Philippe
      0  0

  14. #54
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Je ne suis pas d'accord avec tes statistiques
    • 4 carrés de 1 case OK
    • 2 carrés libres de 1 case OK
    • 5 rectangles de 2 cases vertical ou horizontal au choix
    • 1 carré de 4 cases OK

    Les rectangles peuvent être au choix en position verticale ou horizontale. Il est faux de dire qu'il y doit y en avoir 4 verticaux et 1 horizontal.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .
      0  0

  15. #55
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    Il est faux de dire qu'il y doit y en avoir 4 verticaux et 1 horizontal.
    J'avais pourtant précisé le cas envisagé .

    Pour les autres variantes, sauf erreur, le nombre de plateaux s'échelonne de 14 220 à 109 260 avec 1 à 6 ou 7 plateaux liés.

    Philippe
      0  0

  16. #56
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par philben Voir le message
    J'avais pourtant précisé le cas envisagé .

    Pour les autres variantes, sauf erreur, le nombre de plateaux s'échelonne de 14 220 à 109 260 avec 1 à 6 ou 7 plateaux liés.

    Philippe
    Désolé, je n'avais pas compris que c'était des statistiques partielles sur un seul cas de figure.

    J'avais surtout peur que d'autres personnes n'en déduisent à tord que les positions initiales ne comprennaient ques les cas avec 4 rectangles verticaux et 1 rectangle horizontal.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .
      0  0

  17. #57
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Ca y est, mon programme fonctionne aussi !!! (ben oui quoi, j'ai aussi le droit de chercher ...).

    2 secondes environ pour trouver une solution quelque soit la position initiale (qu'elle soit valide ou non). Ma conf : PIV à 2,4GHz et 1Go RAM sous XP SP3.

    Je confirme pour les 116 mouvements de la figure principale proposée dans le défi, c'est optimal.

    Sinon, tous les autres positions initiales proposées dans le défis ont des solutions (j'ai eu de la chance) et certaines ont un chemin optimal en nettement moins de coups que 116.

    J'ai trouvé le plus long chemin optimal possible vers 160 coups pour 1 grille.

    Il y a 363480 positions initiales possibles et 1112092 déplacement différents.

    Il y a quelque chose comme 90000 positions initiales qui n'ont pas de solution.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .
      0  0

  18. #58
    Membre averti
    Avatar de Chatanga
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 211
    Points : 346
    Points
    346
    Par défaut Détails juridiques
    Bonjour à tous,

    Une petite question qui n'a rien d'algorithmique : serait-il possible de préciser le point suivant du règlement ?

    2.7. Licence des codes sources

    Les codes sources doivent obligatoirement être libres de droits pour une éventuelle intégration dans la page Sources C. Cette mention doit être apportée explicitement dans tous les sources du projet.

    L'accord du participant devra être précisé dans le fichier README qui si trouvera dans l'archive du travail effectué.
    Pour ma contribution au projet, je pensais simplement mettre le tout sous licence BSD. J'ai récupéré le projet du précédent gagnant du Solitaire mais j'ai uniquement trouvé la mention "Je donne mon accord..." dans le README. C'est suffisant ou faut-il quelque chose de plus précis ?
      0  0

  19. #59
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 612
    Points
    30 612
    Par défaut
    La mention minimale est
    copyright MachinChose 2009
    Les sources présentées sont libre de droit
    (le fait de donner à n'importe qui le droit d'utiliser les sources ne veut pas dire pour autant que l'on abandonne la "paternité" du code source qu'on a écrit )
    et dans le readme un truc du genre de
    Je donne explictement mon accord pour que ...
    Mais il est clair qu'il existe une multitude de licences libérant les droits d'utilisation et de modification, allant de BSD à GNU/(L)GPL en passant par toutes les autres, y compris une licence libre "personnalisée"...

    Rien ne t'empêche d'utiliser une licence libre particulière, pour autant... que tu libère effectivement les droits et que tu respecte les autres termes de la licence choisie si tu en choisi une parmi les "particulières" qui existent (si tu place ton projet sous licence BSD, il faut que tu en respecte les termes )
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog
      0  0

  20. #60
    Futur Membre du Club
    Homme Profil pro
    Praticien hospitalier responsable DIM, retraité depuis 9/2019
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Praticien hospitalier responsable DIM, retraité depuis 9/2019
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    Points : 7
    Points
    7
    Par défaut 81 coups ?
    Citation Envoyé par koala01 Voir le message
    Salut, et bienvenue sur le forum

    En effet, les 81 déplacements dont il est question dans l'énoncé sont donnés à titre indicatif, car c'est LA solution par excellence qui n'a pas encore pu être battue
    Elle risque même, non seulement de n'être jamais battue, mais jamais égalée, du moins si on part de la position de départ standard.

    Si j'en crois ce que je vois, les 81 coups comptent des déplacements de deux cases, qui doivent être comptés pour deux coups, et ça fera donc plus de 81 coups pour la solution optimale selon les règles du défi.

    A moins qu'il n'y ait plusieurs solutions optimales ? Nos camarades mathématiciens sont très avantagés..

    Milos.
      0  0

Discussion fermée
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 22/03/2009, 10h49
  2. Réponses: 0
    Dernier message: 22/03/2009, 10h47
  3. [Office] Défi n°1 : Créer un jeu de puissance 4
    Par Arkham46 dans le forum Défis
    Réponses: 40
    Dernier message: 16/02/2009, 16h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo