Planète Casio - Autres questions - Flux RSS http://www.planet-casio.com Programmes Casio, Jeux, Cours pour Calculatrices Casio fr-FR https://www.planet-casio.com/images/logo.gif Planète Casio - Autres questions - Flux RSS http://www.planet-casio.com 55 50 Programmes Casio, Jeux, Cours pour Calculatrices Casio. Mon, 20 Jan 2025 12:02:41 GMT Mon, 20 Jan 2025 12:02:41 GMT contact@planet-casio.com (Planet Casio) contact@planet-casio.com (Planet Casio) 5 Problème résolution d'équation https://www.planet-casio.com/Fr/forums/topic18585--.html Bonjour, Jai un souci pour la resolution d'une équation via le solveur : EQ : 0=50(1-(1+x)^-8)/+1005x(1+x)^-8 - 990 Pouvez vous m'aider ? Wed, 15 Jan 2025 09:11:16 +0100 La quête de l'optimisation (non fiscale) https://www.planet-casio.com/Fr/forums/topic18581--.html Hey hey hey ! En Erasmus j'ai un cours d'optimisation où l'objectif est... d'optimiser un programme. Le sujet de cette année repose sur une jointure entre 4 fichiers différents, je suis donc à la recherche de la moindre petite optimisation pour pouvoir économiser des cycles. Et à la grande surprise de tous : Je ne suis absolument pas bon dedans :E Avant de pouvoir faire la jointure il faut d'abord lire et stocker les fichiers en mémoire, et c'est là l'intérêt de ce topic. Voici le code `C++` permettant de réaliser la lecture, le parsage de la ligne et finalement le stockage dans la structure de donnée : #include <unordered_map> #include <iostream> #include <ostream> #include <string> #include <cstddef> #include <vector> #include <x86intrin.h> #include <fstream> using XxHashMap = std::unordered_map<std::string, std::vector<std::string>>; XxHashMap read_file_to_map(const std::string& file) { XxHashMap map; map.reserve(5000000); std::ifstream infile(file); std::string line; while (std::getline(infile, line)) { size_t pos = line.find(','); map[line.substr(0, pos)].emplace_back(line.substr(pos + 1)); } return map; } int main(int argc, char* argv[]) { const XxHashMap f1 = read_file_to_map(argv[1]); return 0; } Vous l'aurez compris, sur un fichier de ce style : a,b a,c d,e d,f La structure de donnée est similaire à cela : `{a:[b,c], d:[e,f]}` L'intérêt est donc d'optimiser au maximum cette fonction, quitte à modifier la structure de donnée ce n'est pas important. L'ordre du stockage n'est pas important non plus, il me faut juste la possibilité d'obtenir les éléments associés à une clé. Avec ce code j'obtiens entre 8.8 et 9.1B de cycles. Un nombre ne signifiant pas grand chose mais multiplié 4 fois on arrive à plus de 50% de l'exécution totale de la jointure. Ce qui n'est pas correct quand même. Donc si vous avez une quelconque idée, n'hésitez pas à m'aider sur ce coup là :) Le programme complet de la jointure se trouve ci dessous et un fichier d'exemple se trouve pour une durée limitée à cet emplacement : https://t.breizh.pm/nP7JItk4XQ/f2.csv using XxHashMap = std::unordered_map<std::string, std::vector<std::string>>; XxHashMap read_file_to_map(const std::string& file) { XxHashMap map; map.reserve(5000000); std::ifstream infile(file); std::string line; size_t start = __rdtsc(); while (std::getline(infile, line)) { size_t pos = line.find(','); map[line.substr(0, pos)].emplace_back(line.substr(pos + 1)); } size_t end = __rdtsc(); std::cout << "Read cycles: " << end - start << '\n'; return map; } void print_map(const XxHashMap& map) { for (const auto& [key, vec] : map) { std::cout << key << ':'; for (const auto& val : vec) { std::cout << val << ','; } std::cout << '\n'; } } void join(const XxHashMap& f1, const XxHashMap& f2, const XxHashMap& f3, const XxHashMap& f4) { std::ostream& buffer = std::cout; std::string line; for (const auto& [key, vec1] : f1) { auto it2 = f2.find(key); auto it3 = f3.find(key); if (it2 != f2.end() && it3 != f3.end()) { for (const auto& x1 : vec1) { for (const auto& x2 : it2->second) { for (const auto& x3 : it3->second) { auto it4 = f4.find(x3); if (it4 != f4.end()) { for (const auto& x4 : it4->second) { line.clear(); line.append(x3).append(",").append(key).append(",").append(x1).append(",").append(x2).append(",").append(x4).append("\n"); buffer.write(line.c_str(), line.size()); } } } } } } } } int main(int argc, char* argv[]) { size_t startAll = __rdtsc(); if (argc < 5) { std::cerr << "Usage: " << argv[0] << " <file1> <file2> <file3> <file4>\n"; return 1; } // measure the time size_t startRead = __rdtsc(); const XxHashMap f1 = read_file_to_map(argv[1]); const XxHashMap f2 = read_file_to_map(argv[2]); const XxHashMap f3 = read_file_to_map(argv[3]); const XxHashMap f4 = read_file_to_map(argv[4]); size_t endRead = __rdtsc(); std::cout << "Read cycles : " << endRead - startRead << '\n'; // print_map(f1); size_t startJoin = __rdtsc(); // join(f1, f2, f3, f4); size_t endJoin = __rdtsc(); std::cout << "Join cycles: " << endJoin - startJoin << '\n'; size_t endAll = __rdtsc(); std::cout << "All cycles: " << endAll - startAll << '\n'; std::cout << "Join time: " << (endJoin - startJoin) * 100.0 / (endAll - startAll) << "%\n"; std::cout << "Read time: " << (endRead - startRead) * 100.0 / (endAll - startAll) << "%\n"; return 0; } Wed, 08 Jan 2025 20:17:47 +0100 casio fa124 https://www.planet-casio.com/Fr/forums/topic18542--.html Bonjour à tous. J'utilise le logiciel CASIO-FA124 afin de rentrer des programmes dans ma calculatrice, jusqu'à aujourd'hui tout se passé très bien mais là lorsque je crée un programme, je le tape normalement tout va bien, quand je l'enregistre tout est normal aussi mais quand je reclique dessus il manque des bouts de phrases, j'ai réessayer plusieurs fois et je ne trouve pas de solution. Quelqu'un pourrait il m'aider? Merci Thu, 12 Dec 2024 07:29:45 +0100 Exilim avec ligne noire https://www.planet-casio.com/Fr/forums/topic18539--.html Bonjour, Mon casio Exlim affiche une ligne noire sur l'écran. Ecran défectueux ? Que faire pour l'enlever ? Merci Cordialement. Sat, 07 Dec 2024 18:39:10 +0100 gint programming questions https://www.planet-casio.com/Fr/forums/topic18535--.html Hello! I'm planning on making a new program with fxSDK and gint, and I have a few questions. I have an fx-9750GIII and I hope to get an fx-CG50 soon, so I'm curious about a few things for both calculators: - How can I allocate as much RAM as possible for the program to use? I read a few years ago that malloc is a little buggy, but can I get a big chunk of heap that way? I imagine if the heap is mostly empty but has a small allocation in the middle that will limit the largest piece I can allocate. Also, I read about the extra RAM in the SPU and understand the 24-bit accesses in case I need to do that. - Does anything persist in RAM when an add-in exits? - If the add-in allocates memory with malloc but doesn't free it, does the OS recover it or is it just lost? - Does the add-in execute directly from flash or do I lose RAM as the program gets bigger? - How can I read and write files in flash like Python scripts? Thanks in advance! Tue, 03 Dec 2024 22:32:02 +0100 fonction exponentielle et casio FX CP 400+ https://www.planet-casio.com/Fr/forums/topic18527--.html bonjour à toutes et à tous élève de terminale, je viens de faire l'acquisition d'une casion fx cp 400 : quel bel outil ! par contre je ne sais pas traiter (étudier)une fonction exponentielle exemple f(x)= X exp X qd je demande la dérivée ça me renvoie des 2,718......., à la place de mettre le symbole "e" je dois faire une erreur qque part mais je ne trouve pas quelqu'un a t il une idée ? cordialement Sun, 24 Nov 2024 20:11:53 +0100 police https://www.planet-casio.com/Fr/forums/topic18525--.html Bonjour! j'ai trouvé la super police de Lephenixnoir (la police uf5x7), or elle en .png (une seule image avec tout les symboles), comment pourrait on la transformer en un fichier de police? Merci d'avance! ^ω^ Fri, 22 Nov 2024 08:54:26 +0100 Graph 100 + - Problème de tracé de graph https://www.planet-casio.com/Fr/forums/topic18514--.html Bonjour, jai essayé d'afficher le tracé de la fonction : f(x)=(2x/1+x)-ln(1+x) mais le graphique qui s'est affiché ne correspond pas a celui présent dans la correction . Et puis aussi concernant les limites en -1 et +oo je trouve des valeurs fausses ... aidez moi svp c'est urgent Tue, 05 Nov 2024 04:31:00 +0100 Recherche jeu d'échec pour graph 90+E https://www.planet-casio.com/Fr/forums/topic17896--.html Bonjour ! J'aurais une question, il n'y a vraiment aucun jeu d'échec pour graph 90+E ?? J'en vois des tas de super pour graph monochrome, mais vraiment rien pour ma graph ? Wed, 09 Oct 2024 22:32:59 +0200 suggestions d'améliorations pour mon jeteur de dé https://www.planet-casio.com/Fr/forums/topic17889--.html Bonjour à toutes et à tous, je ne sais pas s'il y a déjà un topic de consacré à ça, mais j'ai commencé un programme de jet de dé 100 que je compte utiliser dans le cadre de jeux de rôles […], ceci avec comme objectif, à terme, de me passer de mon smartphone […]. auriez-vous des suggestions d'améliorations de ce programme, sachant que j'aimerais y inclure les mentions "réussite critique" en-deçà d'un certain seuil (par exemple 5, mais après c'est vous qui voyez) et "échec critique" au-delà d'un certain seuil (par exemple 95, mais là encore c'est vous qui voyez) sachant que ça fait un bail que je n'ai plus fait de programmation complexe. vous trouverez ci-joint le programme concerné nommé "JETEUR2D". vous en remerciant d'avance Sniperking Modération : retrait d’informations personnelles superflues. Tue, 01 Oct 2024 16:54:32 +0200