le 07-01-2018 07:43 AM
Puisque comme prévu 'il n'y a pas de challenge officiel pour Juillet je vous propose le défi suivant:
Génération de fractals à l'aide d'expressions régulières (regex).
Vous pouvez trouver la description du défi en suivant ce lien. Il s'agit de faire l'implémentation de ce problème à l'aide de LabVIEW bien entendu. Pour une référence sur les expressions régulière je vous recommande ce site (en anglais). Si l'un de vous connait une bonne référence en français n'hésitez pas à la partager.
J'ai débuté l'implémentation LabVIEW et j'avoue avoir galéré pas mal pour générer le tableau 2D des chaines identifiant chaque pixel (élément du tableau 2D). Il existe probablement une façon plus simple que ce que j'ai fait, je suis curieux de voir les solutions que vous proposerai.
Concentrez vous sur des images en noir et blanc de 256 X 256 (l'ajout de couleurs est en bonus!). Petit conseil, commencez par générer des tableau 2X2, puis 4X4 et 8X8 pour valider et déboguer votre code.
Attendez la fin du mois avant de poster votre code mais n'hésitez pas à partager vos oeuvres!
Bon défi!
Ben64
le 07-01-2018 10:26 AM
07-02-2018 10:16 AM - modifié 07-02-2018 10:44 AM
Merci pour ce nouveau challenge Ben ! Très intéressant surtout niveau optimisation.
En effet pas facile la génération du tableau... Mais j'ai aussi trouvé un moyen.
Pour étalon, mais je suis sûr que vous ferez mieux 🙂 :
Bon courage à tous ! Jessaierai de repasser voir les avancées malgré un programme plus chargé dans les prochains jours.
Bonne semaine,
le 07-02-2018 12:29 PM
07-02-2018 12:37 PM - modifié 07-02-2018 12:44 PM
Intéressant, ton expression régulière est donc plutôt rapide ! Je vais creuser ça et regarder la couleur aussi 😉
Édit : ceci dit je ne suis pas sûr de ce qu'ils appellent un "capturing group". Est-ce lié au nombre de pixels mis en valeur par les regexp ou bien autre chose ?
le 07-02-2018 01:58 PM
Un "capture group" permet d'extraire une partie d'un "match". Par exemple si on a l'expression [23](1.*2).*4, cette expression correspondra a toutes les chaines débutant par 2 ou 3 dont le deuxième caractère est un 1, dont il y a un 2 un peu plus loin et qui se termine par un 4. La parenthèse (1.*2) est un capturing group. Dans le cas d'un tableau 256 X 256 dont les chaines on une longueur de 8 les longueurs possibles pour ce capturing group vont de 2 à 6 éléments: 12 à 1????2 ou ? est n'importe quel nombre de 1 à 4. Pour extraire ce capturing group il suffit de tirer la fonction Match Regular Expression vers le bas. Par exemple pour la chaine 43131214 le capture group retournera 1312 (longueur =4).
Ben64
le 07-02-2018 02:10 PM
Très très clair, merci 🙂
le 07-03-2018 08:38 AM
Mes premier résultats sont tombés :
Pour un 512x512 je monte vers 1.9s
le 07-03-2018 09:06 AM
Après un peu de recherches je tombe sur 40ms pour la création du tableau avec un total moyen sur toutes les fractales proposées de 360ms. Par contre certaines de mes fractales semblent fausses... Ben as-tu réussi à toutes les recréer ?
le 07-03-2018 09:11 AM
@ML927 wrote:
Après un peu de recherches je tombe sur 40ms pour la création du tableau avec un total moyen sur toutes les fractales proposées de 360ms. Par contre certaines de mes fractales semblent fausses... Ben as-tu réussi à toutes les recréer ?
J'en ai essayé qu'un seul, je te reviendrai la-dessus plus tard je n'ai pas le code avec moi.
Ben64