Suite de nombre toujours égale à un nombre.
Jestiz_
Messages postés
34
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Mon but est de faire un système un peu comme dans les battles royales. J'explique comment fonctionne les battles royales et leur système de tempête pour ceux qui ne savent pas. Il y a une zone de combat et une zone de tempête. Cette zone de tempête entoure toute la zone de combat. Cette dernière commence en étant très large puis réduit avec le temps. Mais elle ne réduit pas tout le temps, elle alterne par phase. Il y a la phase où la tempête rétrécit et la phase où la tempête est arrêtée et laisse le temps aux joueurs de se déplacer. Ces 2 phases ont un temps de validité avant de passer à l'autre phase. Par exemple :
- Phase 1 temps de rétrécissement 3min, temps arrêté 3min.
- Phase 2 temps de rétrécissement 2min, temps arrêté 2min.
- Phase 3 temps de rétrécissement 1min, temps arrêté 1min.
- etc etc.
J'explique maintenant mon problème. J'ai un temps initial de jeu qui est la limite avant que ce dernier ne finisse (choisit par l'utilisateur) disons 2 heures. Soit 7200 secondes. J'ai un nombre maximum de phase (choisit aussi par l'utilisateur) disons 5.
Ce que je fais est donc diviser le temps maximum par le nombre de phase. 7200/5 = 1440. J'aurais donc 5 phases de 1440 secondes. Mais le problème est là, je veux qu'en augmentant de phase, on réduise le temps qu'une phase dure (disons 20%) TOUT en conservant le temps maxmium de jeu. J'ai donc besoin d'une suite avec des éléments variant d'ordre décroissant tout en gardant un total de 7200.
Merci de votre aide, en espérant avoir été le plus clair possible.
Mon but est de faire un système un peu comme dans les battles royales. J'explique comment fonctionne les battles royales et leur système de tempête pour ceux qui ne savent pas. Il y a une zone de combat et une zone de tempête. Cette zone de tempête entoure toute la zone de combat. Cette dernière commence en étant très large puis réduit avec le temps. Mais elle ne réduit pas tout le temps, elle alterne par phase. Il y a la phase où la tempête rétrécit et la phase où la tempête est arrêtée et laisse le temps aux joueurs de se déplacer. Ces 2 phases ont un temps de validité avant de passer à l'autre phase. Par exemple :
- Phase 1 temps de rétrécissement 3min, temps arrêté 3min.
- Phase 2 temps de rétrécissement 2min, temps arrêté 2min.
- Phase 3 temps de rétrécissement 1min, temps arrêté 1min.
- etc etc.
J'explique maintenant mon problème. J'ai un temps initial de jeu qui est la limite avant que ce dernier ne finisse (choisit par l'utilisateur) disons 2 heures. Soit 7200 secondes. J'ai un nombre maximum de phase (choisit aussi par l'utilisateur) disons 5.
Ce que je fais est donc diviser le temps maximum par le nombre de phase. 7200/5 = 1440. J'aurais donc 5 phases de 1440 secondes. Mais le problème est là, je veux qu'en augmentant de phase, on réduise le temps qu'une phase dure (disons 20%) TOUT en conservant le temps maxmium de jeu. J'ai donc besoin d'une suite avec des éléments variant d'ordre décroissant tout en gardant un total de 7200.
Merci de votre aide, en espérant avoir été le plus clair possible.
A voir également:
- Suite de nombre toujours égale à un nombre.
- Nombre de jours entre deux dates excel - Guide
- Nombre facile - Télécharger - Outils professionnels
- Ascii nombre de caractères - Guide
- Afficher le 0 devant un nombre dans excel - Guide
- Nombre de page - Guide
4 réponses
Bonsoir
C'est des maths, pas de la programmation.
Pour 5 phases, -20% veut dire qu'on garde 80%, donc on multiplie par 0,8.
Si X est la durée initiale alors:
7200 = X + 0,8 X + 0,64 X + 0,512 X + 0,4096 X ( 0,8 * 0,8 = 0,64; 0,64 * 0,8 = 0,512 ; etc ...)
Je te laisse finir.
C'est des maths, pas de la programmation.
Pour 5 phases, -20% veut dire qu'on garde 80%, donc on multiplie par 0,8.
Si X est la durée initiale alors:
7200 = X + 0,8 X + 0,64 X + 0,512 X + 0,4096 X ( 0,8 * 0,8 = 0,64; 0,64 * 0,8 = 0,512 ; etc ...)
Je te laisse finir.
Jestiz_
Messages postés
34
Date d'inscription
Statut
Membre
Dernière intervention
Justement je cherchais un forum maths sur le site mais je n'ai pas trouvé, et comme j'en ai besoin dans un programme je l'ai mis ici. Je testerai ce que vous m'avez dit.
Bonjour,
A programmer..ça ne doit pas être compliqué... il faut utiliser des fonctions matéhématiques...
Donc LES deux seules questions à se poser sont :
- Quelle formule mathématique veux tu utiliser ?
- Dans quel langages ?
Sans ces informations... impossible pour nous de t'aider.
Nous aidons à coder... pas à faire des maths. ( à moins qu'une personne passant par là ait une idée sur la formule mathématique qui pourrait être utilisée..... )
Un truc du genre
F(x) = F(x-1) * (1-20/100)
Y - F(x)[0->n] = 0
Avec F(0) = Y
Ca ressemble vaguement à une intégrale... mais les cours de maths à ce sujet sont très très loin ... je ne pourrais pas t'aider d’avantage.
Le mieux serait surement de poster dans un forum de mathématique.....
A programmer..ça ne doit pas être compliqué... il faut utiliser des fonctions matéhématiques...
Donc LES deux seules questions à se poser sont :
- Quelle formule mathématique veux tu utiliser ?
- Dans quel langages ?
Sans ces informations... impossible pour nous de t'aider.
Nous aidons à coder... pas à faire des maths. ( à moins qu'une personne passant par là ait une idée sur la formule mathématique qui pourrait être utilisée..... )
Un truc du genre
F(x) = F(x-1) * (1-20/100)
Y - F(x)[0->n] = 0
Avec F(0) = Y
Ca ressemble vaguement à une intégrale... mais les cours de maths à ce sujet sont très très loin ... je ne pourrais pas t'aider d’avantage.
Le mieux serait surement de poster dans un forum de mathématique.....
Bonjour,
Si on reprends le calcul de Whismeril :
Or
Cela donne 7200 = X*(1-0.8^5)/(1-0.8) et donc X = 7200/3.3616 = 2141.837
De manière générale : X = S*(1-p)/(1-p^n) et en Java ça donne ceci :
Si on reprends le calcul de Whismeril :
7200 = X + 0,8 X + 0,64 X + 0,512 X + 0,4096 X
7200 = (0,8^0 + 0,8^1 + 0,8^2 + 0,8^3 + 0,8^4) X
Or
sum(p^k, k=0..n-1) = (1-p^n)/(1-p)avec pour l'exemple p=0.8 et n=5 (voir Suite géométrique).
Cela donne 7200 = X*(1-0.8^5)/(1-0.8) et donc X = 7200/3.3616 = 2141.837
De manière générale : X = S*(1-p)/(1-p^n) et en Java ça donne ceci :
public static double calcul(double s, double p, int n) { return s * (1 - p) / (1 - Math.pow(p, n)); } public static void main(String[] args) { System.out.println(calcul(7200, 0.8, 5)); // 2141.837... }
Si ça ne tombe pas juste c'est à cause des arrondis successifs, peut-être parce que tu travailles avec des entiers ?
Dans l'absolu on pourrait parler d'optimisation combinatoire, de recherche opérationnelle, etc.
Mais pour un devoir de lycée, la suite géométrique (programme de 1ère) est certainement la réponse attendue.
Dans l'absolu on pourrait parler d'optimisation combinatoire, de recherche opérationnelle, etc.
Mais pour un devoir de lycée, la suite géométrique (programme de 1ère) est certainement la réponse attendue.