#5 Gestion de l'aléatoire

Closed
opened 1 year ago by Shadow15510 · 8 comments

La gestion de l’aléatoire manque, une fonction qui permet de générer un nombre entre 0 et 1 serait utile !

La gestion de l'aléatoire manque, une fonction qui permet de générer un nombre entre 0 et 1 serait utile !
Lephenixnoir commented 1 year ago
Owner

C’est compliqué. Quel générateur aléatoire utiliser ? Les LCG sont pas toujours de bonne qualité et parfois très faciles à prédire (ie. alternent des pairs et des impairs), et les générateurs plus performants sont parfois gros.

Bon après on n’a pas besoin de grand-chose, c’est sûr... on fait pas de la crypto.

TinyMT serait peut-être de bon goût.

C'est compliqué. Quel générateur aléatoire utiliser ? Les LCG sont pas toujours de bonne qualité et parfois très faciles à prédire (ie. alternent des pairs et des impairs), et les générateurs plus performants sont parfois gros. Bon après on n'a pas besoin de grand-chose, c'est sûr... on fait pas de la crypto. TinyMT serait peut-être de bon goût.
Alice commented 8 months ago

En attendant, implementer rand et srand de stdlib.h ne devrait pas être compliqué, il y a même une implementation proposé dans le brouillon du document ANSI C à la section 4.10.2.2 :think:

En attendant, implementer `rand` et `srand` de `stdlib.h` ne devrait pas être compliqué, il y a même une implementation proposé dans le [brouillon du document ANSI C](https://web.archive.org/web/20161223125339/http://flash-gordon.me.uk/ansi.c.txt) à la section 4.10.2.2 :think:
Lephenixnoir commented 8 months ago
Owner

Hmm, cette implémentation est hyper fragile, je voudrais vraiment éviter ça... 15 bits c’est très très pauvre, et le LCG sont pas très fiables.

Hmm, cette implémentation est hyper fragile, je voudrais vraiment éviter ça... 15 bits c'est très très pauvre, et le LCG sont pas très fiables.
Alice commented 8 months ago

Sans doute, mais bon à part des plus ou moins, c’est pas comme si on allait faire des trucs complexes

Sans doute, mais bon à part des plus ou moins, c'est pas comme si on allait faire des trucs complexes :star:
Lephenixnoir commented 8 months ago
Owner

Je comprends... pour pas que ça traîne trop, j’ai ajouté une version réduite du code de TinyMT comprenant uniquement la génération d’entiers aux sources de gint (ça ne se recode pas ce genre de trucs, c’est codé avec les bonnes licences par les chercheurs et fait pour être réutilisé directement). Le rand() et le srand() qui vont avec sont codés et rapidement testés. Je vais envoyer tout ça dans mes prochains commits.

Je comprends... pour pas que ça traîne trop, j'ai ajouté une version réduite du code de TinyMT comprenant uniquement la génération d'entiers aux sources de gint (ça ne se recode pas ce genre de trucs, c'est codé avec les bonnes licences par les chercheurs et fait pour être réutilisé directement). Le `rand()` et le `srand()` qui vont avec sont codés et rapidement testés. Je vais envoyer tout ça dans mes prochains commits.
Darks commented 6 months ago
Owner

Je viens prendre des nouvelles du front, que ce ticket ne finisse pas dans les limbes. ^^

Je viens prendre des nouvelles du front, que ce ticket ne finisse pas dans les limbes. ^^
Lephenixnoir commented 6 months ago
Owner

Hmm donc en gros j’ai une version minimale de TinyMT32 prête à être intégrée dans gint. J’aurais pu la pousser avant, évidemment ça m’a échappé. Je vais la mettre après le fix de Bfile sur G90, dont j’arrive au bout.

Hmm donc en gros j'ai une version minimale de TinyMT32 prête à être intégrée dans gint. J'aurais pu la pousser avant, évidemment ça m'a échappé. Je vais la mettre après le fix de Bfile sur G90, dont j'arrive au bout.
Lephenixnoir commented 6 months ago
Owner

Voilà, c’est ajouté par le commit 50cc536324 qui est pour l’instant disponible sur la branche dev. Le temps que je reteste gint sur SH3 (ça fait un bon moment), ça passera dans la prochaine release sur master (pas de date par contre).

Ç’aura été long mais on y arrive...

Voilà, c'est ajouté par le commit https://gitea.planet-casio.com/Lephenixnoir/gint/commit/50cc536324de269396b45289fd3f9193793a9855 qui est pour l'instant disponible sur la branche dev. Le temps que je reteste gint sur SH3 (ça fait un bon moment), ça passera dans la prochaine release sur master (pas de date par contre). Ç'aura été long mais on y arrive...
Lephenixnoir closed this issue 6 months ago
Sign in to join this conversation.
No Label
No Milestone
No Assignees
4 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.