Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#1 Re : Programmation » [Python]Kit d'aide à la cryptanalyse » 01-09-2024 22:20:40
Bonsoir,
Pour te donner une idée, voici vers quoi tu veux te lancer : https://www.math.univ-paris13.fr/~boyer … to2010.pdf. Et il s'agit seulement d'un cours pour "débutant".
Ah oui, c'est touffu. J'aime beaucoup le point 1.2 et 1.3 qui expliquent bien, je trouve, les développements actuels et surtout la nécessité de l'open source. Merci pour ce lien.
#2 Re : Entraide (supérieur) » Dénombrement » 01-09-2024 22:13:54
Bonsoir,
Dénombrement pour deux alignés (dans une des trois directions) sur le plateau d'Abalone :
$$(1\times24+6\times22+12\times20+18\times18+24\times 16)/2$$Ce qui fait une proba (en supposant les positions équiprobables) de $92/305 \simeq 30,16\%$
Ah oui, très bien ! Je suis toujours admiratif de ces formules, perso il me faut des millions de simulations pour approcher cette valeur, qu’on en juge :
Avec Python et interpréteur en ligne :
Nombre de billes: 2
Nombre total de simulations: 1 000 000
Nombre d'alignements trouvés: 302 100
Taux d'alignement: 30,2100 %
Temps d'exécution total: 31,66 secondes
En C compilé sur ma bécane :
Nombre de billes: 2
Nombre total de simulations: 100 000 000
Nombre d'alignements trouvés: 30 161 130
Taux d'alignement: 30,1611 %
Temps d'exécution total: 24,98 secondes
En poussant les feux j’arrive au milliard (C multi-threadé sur ma bécane i7 8 coeurs)
Nombre de billes: 2
Nombre total de simulations: 1 000 000 000
Nombre d'alignements trouvés: 301 620 323
Taux d'alignement: 30,1620 %
Temps d'exécution total: 34,87 secondes
Bon, il n’y a peut-être pas besoin d’autant, n’empêche que je suis content de voir qu’on trouve la même chose, j’ai toujours peur de me planter.
#3 Re : Entraide (supérieur) » Dénombrement » 01-09-2024 19:17:06
pour dénombrer les cas favorables, il faut bien se placer dans un cas de figure déterminé et s'y tenir.
C'est vrai, d'autant que ce qu'on appelle « alignement » est déjà en soi une problématique.
En restant sur un tableau orthogonal classique genre papier quadrillé, quid des diagonales ? Les grandes diagonales ok, mais celles qui lui sont parallèles ? Puisque les jetons peuvent être superposés, rien n'empêche d'avoir les cinq jetons sur quatre ou trois emplacements seulement, donc des diagonales courtes, voire alignés « géométriquement » comme dans ces quelques exemples :
. . . x o . . o . . . . x . .
. . . o x . . x . o . . . o x
. . o . . . . . . . . . . . .
. o . . . . x . . . . . o . .
. . . . x . x . . . . . . . .
. . . . o . . . . . o . . . .
. . . . . o . . . . . . . x .
. . o . . . . . o . . . . . .
On revient donc bien au problème des dénombrements, titre de cette enfilade, et je me souviens de casse-têtes géométriques dans lesquels on devait dénombrer les triangles ou des rectangles crées par des figures enchevêtrées, rigolo.
#4 Re : Entraide (supérieur) » Dénombrement » 01-09-2024 18:53:29
simulations avec 5 jetons placés au hasard sur un plateau ... d'Abalone ... :-)
Re-bonjour,
J’ai d’abord testé un plateau d’Abalone avec deux billes au hasard – qui ne peuvent pas se superposer, normal, ce sont des billes – avec affichage si alignement ou non, pour ce genre de sortie :
. . . . .
. . . . ● .
. ● . . . . .
. . . . . . . .
. . . . . . . . .
. . . . . . . .
. . . . . . .
. . . . . .
. . . . .
NON
Plateau 16:
. . . . .
. . . . . .
. . . . . . .
. . . . . . . .
. . . . . . ● . .
. . . . . . . .
. . . . . . .
. . . . . .
. . . ● .
NON
Plateau 17:
. . . . .
. . ● . . .
. . . . . . .
. . . . . . . .
. . . . . . . . .
. . . . . . . .
. . . . . . .
. . . . . ●
. . . . .
OUI
Plateau 18:
. . . . .
. . . . . .
. . . . ● . .
. . . . . . . .
. . . . . . . . .
. . . ● . . . .
. . . . . . .
. . . . . .
. . . . .
OUI
Plateau 19:
. . . . .
. . . . . .
. . ● . . . .
. . . . . . . .
. ● . . . . . . .
. . . . . . . .
. . . . . . .
. . . . . .
. . . . .
NON
Plateau 20:
. . ● . .
. . . . . .
. . . . . . .
. . . . . . . .
. . . . . . . . .
. . . . . . ● .
. . . . . . .
. . . . . .
. . . . .
OUI
Une fois que c’est validé, statistiques sur une centaine de tirages, extrait :
. . . . .
. . . . . .
. . . . . . .
. . . . . . . .
. ● ● . . . . . .
. . . . . . . .
. . . . . . .
. . . . . .
. . . . .
Alignement trouvé (simulation 93):
. . . . .
. . . . . .
. . . ● ● . .
. . . . . . . .
. . . . . . . . .
. . . . . . . .
. . . . . . .
. . . . . .
. . . . .
Alignement trouvé (simulation 97):
. . . . .
. . . ● . .
. . . . . . .
. . . . . . . .
. . . . . . . . .
. . . . . . . .
. . . . . . .
● . . . . .
. . . . .
Alignement trouvé (simulation 100):
. . . . .
. . . . . .
. . . . . . .
. . . . . . . .
. . . . . . . . .
. . . . . . . .
. . . . . . .
. . . . . .
. ● . . ●
Statistiques finales:
Nombre total de simulations: 100
Nombre d'alignements trouvés: 31
Taux d'alignement: 31.00%
Donc ça marche, fin des procédures de vérification.
Dans ce cas, proba d’alignement de $2$ billes sur un plateau d’Abalone :
Nombre total de simulations: 1 000 000
Nombre d'alignements trouvés: 301 203
Taux d'alignement: 30.120%
Temps d'exécution total: 27.26 secondes
On passe à $3$ billes, les probas s’effondrent :
Nombre total de simulations: 1 000 000
Nombre d'alignements trouvés: 27 366
Taux d'alignement: 2.737%
Temps d'exécution total: 30.76 secondes
Et enfin avec $5$ billes :
Nombre total de simulations: 1 000 000
Nombre d'alignements trouvés: 156
Taux d'alignement: 0.016%
Temps d'exécution total: 42.26 secondes
J’ai mis ici le programme en Python, qui permet de modifier la taille du plateau, le nombre de billes et le nombre de simulations directement dans le script, tout en bas :
import time
class Board:
def __init__(self, side_length):
self.side_length = side_length
self.cells = {}
for q in range(-side_length + 1, side_length):
r_start = max(-side_length + 1, -q - side_length + 1)
r_end = min(side_length - 1, -q + side_length - 1)
for r in range(r_start, r_end + 1):
s = -q - r
self.cells[(q, r, s)] = None
def place_random_marble(self):
empty_cells = [coord for coord, value in self.cells.items() if value is None]
if empty_cells:
chosen_cell = random.choice(empty_cells)
self.cells[chosen_cell] = "black"
return chosen_cell
return None
def are_marbles_aligned(marbles):
if len(marbles) < 2:
return True
for axis in range(3):
if all(marble[axis] == marbles[0][axis] for marble in marbles):
return True
return False
def run_simulations(num_simulations, num_marbles, side_length):
start_time = time.time()
alignments = 0
for _ in range(num_simulations):
board = Board(side_length)
marbles = []
aligned = True
for _ in range(num_marbles):
new_marble = board.place_random_marble()
if new_marble is None:
aligned = False
break
marbles.append(new_marble)
if not are_marbles_aligned(marbles):
aligned = False
break
if aligned:
alignments += 1
end_time = time.time()
execution_time = end_time - start_time
alignment_rate = (alignments / num_simulations) * 100
print(f"Statistiques finales:")
print(f"Taille du plateau: {side_length} emplacements par côté")
print(f"Nombre de billes: {num_marbles}")
print(f"Nombre total de simulations: {num_simulations:,}")
print(f"Nombre d'alignements trouvés: {alignments:,}")
print(f"Taux d'alignement: {alignment_rate:.4f}%")
print(f"Temps d'exécution total: {execution_time:.2f} secondes")
# Définir une seed aléatoire
random.seed(int(time.time()))
# Paramètres configurables
NUM_SIMULATIONS = 1_000_000
NUM_MARBLES = 5
SIDE_LENGTH = 5 # Nombre d'emplacements sur chaque côté du plateau
# Exécuter les simulations
run_simulations(NUM_SIMULATIONS, NUM_MARBLES, SIDE_LENGTH)
#5 Re : Entraide (supérieur) » Dénombrement » 01-09-2024 10:46:18
Bon, je termine.
Les simulations, je les avais programmé tranquillou chez moi, mais pour un forum valait mieux du standard que tout le monde puisse utiliser. La grande mode actuelle c’est Python, ok, mais c’est quand même pas mal lent.
J’ai donc utilisé un assistant IA, ici Perplexity, et je lui ai expliqué ce que j’attendais. Résultat, il m’a pondu ces deux programmes sans une ligne de code de ma part. Bon, faut être honnête, je savais quand même assez bien ce qu’il fallait faire. Quant à l’exécution de ces programmes, il fallait qu’elle soit accessible à tous, donc rien sur ma machine mais tout à distance sur des sites qui proposent les calculs.
On peut se faire une idée de la démarche, la discussion complète (erreurs comprises) est > ici <. Il est toujours possible bien sûr de copier / remplacer le code dans les sites donnés précédemment pour reproduire la progression complète, mais il est peut être plus simple de lire uniquement mes interventions en gras pour comprendre à quel point la méthode de travail est efficace.
(je me demande d'ailleurs s'il ne faudrait pas dupliquer ces deux derniers messages dans la partie « programmation »)
#6 Re : Entraide (supérieur) » Dénombrement » 01-09-2024 10:25:20
Bonjour encore,
Voici le code Python qui permet d’évaluer un million de configurations en moins de dix secondes en le copiant / collant sur ce site (script à gauche, execute en bas)
import time
def optimized_trials(n, num_trials):
successes = 0
for _ in range(num_trials):
rows = [0] * n
cols = [0] * n
for _ in range(n):
x, y = random.randrange(n), random.randrange(n)
rows[y] += 1
if rows[y] == n:
successes += 1
break
cols[x] += 1
if cols[x] == n:
successes += 1
break
return successes
def main():
n = 5
num_trials = 1000000
start_time = time.time()
successes = optimized_trials(n, num_trials)
end_time = time.time()
elapsed_time = end_time - start_time
success_rate = (successes / num_trials) * 100
print(f"Nombre de tirages : {num_trials}")
print(f"Nombre de succès : {successes}")
print(f"Pourcentage de succès : {success_rate:.5f}%")
print(f"Temps d'exécution : {elapsed_time:.2f} secondes")
if __name__ == "__main__":
main()
En def main() on peut bien sûr s'amuser à changer le nombre de jetons et de tirages.
Le C est beaucoup plus efficace, on peut s'en rendre compte par exemple en copiant / remplaçant le programme sur ce site (script à gauche, execute en haut).
#include <stdlib.h>
#include <time.h>
#define N 5
#define NUM_TRIALS 1000000
#define RAND_MAX_PLUS_1 ((unsigned long long)RAND_MAX + 1)
#define RAND_MAX_PLUS_1_SQUARE ((unsigned long long)RAND_MAX_PLUS_1 * RAND_MAX_PLUS_1)
static inline unsigned long long xorshift64star(void) {
static unsigned long long x = 1;
x ^= x >> 12;
x ^= x << 25;
x ^= x >> 27;
return x * 0x2545F4914F6CDD1DULL;
}
static inline unsigned int fast_rand(void) {
return (unsigned int)(xorshift64star() & 0xFFFFFFFF);
}
static inline unsigned int fast_rand_range(unsigned int limit) {
return (unsigned int)((fast_rand() * (unsigned long long)limit) >> 32);
}
int main(void) {
unsigned int successes = 0;
unsigned int rows[N], cols[N];
unsigned int i, j, x, y;
clock_t start, end;
double cpu_time_used;
start = clock();
for (i = 0; i < NUM_TRIALS; ++i) {
for (j = 0; j < N; ++j) {
rows[j] = cols[j] = 0;
}
for (j = 0; j < N; ++j) {
x = fast_rand_range(N);
y = fast_rand_range(N);
if (++rows[y] == N || ++cols[x] == N) {
++successes;
break;
}
}
}
end = clock();
cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;
printf("Nombre de tirages : %d\n", NUM_TRIALS);
printf("Nombre de succès : %u\n", successes);
printf("Pourcentage de succès : %.5f%%\n", (double)successes / NUM_TRIALS * 100);
printf("Temps d'exécution : %.2f secondes\n", cpu_time_used);
return 0;
}
On peut s'amuser à changer le nombre de jetons et le nombre d’essais (N 5 et NUM_TRIAL 1000000 lignes 4 et 5), n'importe comment on tombe bien sur la formule de @bridgslam. Au-delà d'un certain $n$ ça devient compliqué (temps de plus en plus long et nécessité d’augmenter les essais pour avoir quelques succès tant la proba devient faible).
#7 Re : Entraide (supérieur) » Dénombrement » 01-09-2024 10:00:50
Bonjour toujours,
En fait il y a deux cas de figure. Si on compte toutes les dispositions possibles, on obtient ce genre de choses :
----------------------------------
1 | 1 | 1 | 0.0000
2 | 16 | 12 | 0.0000
3 | 729 | 153 | 0.0010
4 | 65536 | 2032 | 0.1250
5 | 9765625 | 31225 | 19.410
Si on ne compte que les dispositions uniques, on obtient ce genre de choses :
-----------------------------------
1 | 1 | 1 | 0.0000
2 | 10 | 8 | 0.0000
3 | 165 | 51 | 0.0000
4 | 3876 | 264 | 0.0080
5 | 118755 | 1235 | 0.2390
En fait il doit y avoir une question d’équiprobabilité là-dedans, quand je simule je tombe sur les premiers chiffres, pas les seconds. Je vais mettre les programmes plus bas, au cas où ça intéresse quelqu’un.
#8 Re : Entraide (supérieur) » Dénombrement » 01-09-2024 09:56:37
Bonjour tout le monde,
Dans mes simulations les jetons sont indistincts. Au départ je pose les cinq au hasard puis j’étudie la validité du placement. Pour n petit cela marche bien, les probabilités d’alignement restent assez élevées et les calculs sont vite menés, mais quand n grandit cela devient problématique parce qu’il y a de moins en moins d’alignements et donc je perds de plus en plus de temps à faire un tas de calculs pour rien, pas top.
Pour aller plus vite, je teste la pose à chaque jeton et je passe à l’essai suivant dès qu’un jeton est mal placé et empêche tout succès ultérieur. Pour tester la validité de ce jeton, inutile d’ailleurs de mémoriser son emplacement exact, il suffit d’incrémenter la ligne et la colonne où il se place. À ce moment, s’il n’y en a pas au moins une des deux qui correspond au nombre de jetons déjà posés, c’est qu’on est hors ligne et hors colonne, donc échec, inutile d’aller plus loin, j’arrête cette tentative. Si le cinquième passe sans échec, c’est un succès, yeah !
#9 Re : Entraide (supérieur) » Dénombrement » 31-08-2024 13:47:00
Bonjour,
Le problème est intéressant, à cause des différentes configurations possibles. En plus ce que j’aime bien avec les forums, c’est qu’on a le temps d’y réfléchir, d’y revenir, de peaufiner tout ça, donc ce genre de petit problème c’est sympa. Bref, sur ce coup j’ai eu envie de programmer une simulation, pour voir...
Avec n jetons différents sur un damier nxn , le résultat (pour moi ) est $2 \times n^{n+1} - n^2$
Eh bien les résultats que j’obtiens sont parfaitement en accord avec cette formule, donc je dis bravo, étant incapable de calculer des probabilités théoriques, admiration sincère.
À noter que si j’arrive à une concordance de plusieurs décimales pour des $n$ petits, à partir de la dizaine c’est mort puisqu’il faut plusieurs milliards de tirages pour voir apparaître des occurrences, d’où le manque de précision de ma méthode.
Comme quoi les formules, il n’y a que ça de vrai !
#10 Re : Café mathématique » Jeux mathématiques » 31-08-2024 13:22:26
Bonjour,
Intéressante, cette vision d'un monde.
Perso je ne vois rien de ludique là-dedans, aucune convivialité, aucun partage, aucun rire. Il s'agit uniquement de concurrents avec ou sans préparation en train de s’affronter dans des épreuves jusqu’en finale d’une compétition. Les mots utilisés sont ceux de l’article, pas une charge de ma part (on notera en passant les T-shirts nationalistes). Si c’est ça l’idée que se font les organisateurs d’une mathématique ludique, euh, comment dire...
#11 Re : Entraide (collège-lycée) » Croissance comparée en spécialité maths » 27-08-2024 08:48:05
Bonjour,
Ma remarque concernait ton commentaire « # on le multiplie 32 fois par lui-même ».
Ah ok, j’avions pas percuté à quoi cela se rapportait. Je suis bien sûr d’accord avec ce que tu expliques, cela fait partie des innombrables impropriétés du langage courant, un peu comme les augmentations de 200 % pour un facteur 2 ou les « c’est pas droit » pour dire penché.
#12 Re : Entraide (collège-lycée) » Croissance comparée en spécialité maths » 27-08-2024 01:48:02
J'ignore s'il est adaptable à Maple.
Bonsoir Yoshi,
Sur ce coup j’ai demandé à un assistant AI de me traduire ça en Maple (l'échange complet ici), ça me sort le millier de décimales instantanément et termine par « Temps écoulé (affichage inclus): 0.000 s », donc moins d’un millième, bravo pour ton script.
Ce qui montre combien les outils actuels (Geogébra, Python, Maple, Wolfram, les assistants AI tout ça) sont en train d’intégrer une expertise considérable, c’est absolument fabuleux.
#13 Re : Entraide (collège-lycée) » Croissance comparée en spécialité maths » 26-08-2024 23:05:42
Toute petite rectification, si je peux me permettre : un nombre multiplié 32 fois par lui-même est égal à ce nombre élevé à la puissance... 33. :-)
En effet, $v^2 = v \times v$ (le nombre est multiplié une fois par lui-même ; $v^3 = v \times v \times v$ (le nombre est multiplié deux fois par lui-même) ; etc.
En fait ici, comme je fais $v\times v$ plusieurs fois de suite, cela revient à obtenir $v^{2}$, $v^{4}$, $v^{8}$, $v^{16}$, ..., $v^{4294967296}$ c'est pourquoi je choisis comme exposant initial une puissance de 2 (et pas 26).
#14 Re : Entraide (collège-lycée) » Croissance comparée en spécialité maths » 26-08-2024 22:53:20
Hello Borassus, bonsoir tout le monde,
Pourquoi as-tu choisi $k = 2^{32}$, et non, par exemple $2^{16}$ ou $2^{26}$ ?
En fait je suis parti sur les calculs de Yoshi qui ne trouvait pas cela terrible au regard des résultats qu’il avait avec des méthodes de calcul de racines. Je me suis dit qu’il fallait faire mieux. Avec $2^{16}$ j’arrivais à 20 termes, le développement de ces termes dépassait une ligne, j’ai donc poussé pour obtenir le truc en 10 termes. Comme toujours avec moi, c’est un compromis et c’est arbitraire.
Ah oui, on notera que plus on augmente la puissance de 2, moins on a besoin de termes. On peut même finir avec un seul et unique terme si on adopte un exposant de… 334, vu que dans ce cas on retrouve la formule originelle avec la même valeur au dénominateur et en exposant.
L'idée de considérer le nombre $e$ comme étant $(e^{\frac 1 x})^x$ est une véritable perle !
Content que tu apprécies, j'ai trouvé cela dans ce papier de 2004 où l’auteur regroupe les termes pour converger plus vite et calcule également à partir de l’inverse (voir l'équation (14) et les paragraphes associés en bas de la cinquième page marquée 38). Je ne voulais pas regrouper – sinon c’est autre chose – mais ce qui m’a vraiment plu c’est l’idée de passer par des racines de plus en plus importantes et ensuite de restaurer avec des exposants de plus en plus grands. J’ai donc développé, sans trop optimiser pour que tout reste bien lisible.
#15 Re : Entraide (collège-lycée) » Croissance comparée en spécialité maths » 26-08-2024 22:38:47
Bonsoir Yoshi, bonsoir tout le monde,
Hé hé, c’est un peu grâce à toi et à tes 71 termes que j’ai essayé de faire mieux, faut bien le dire.
J'ai adapté ton script à Python, il ne fonctionne pas : je reprends demain...
Ok, celui-là devrait marcher, je l'ai essayé dans plusieurs moteurs Python dispo en ligne sans problème.
decimal.getcontext().prec = 120
k = 2**32
x = k
v = decimal.Decimal(1)
f = decimal.Decimal(1)
for i in range(1, 11):
f *= i
v += 1 / (f * x)
x *= k
for _ in range(32):
v = v * v
print(f"{v:.103f}")
(je ne suis pas un spécialiste, j’ai simplement demandé à un assistant AI de me traduire le code Maple en Python)
#16 Re : Entraide (collège-lycée) » Croissance comparée en spécialité maths » 26-08-2024 11:50:52
J'essaiera tantôt de rendre le développement en série moins hermétique...
Bonjour,
En fait le développement en série ne me dérange pas trop. On peut l’utiliser en calculant par exemple exp(1/x) qu’on élève ensuite à la puissance x, ce qui est équivalent à exp(1). L’avantage du procédé, c’est que le développement de exp(1/x) produit des dénominateurs rapidement gigantesques et permet d’obtenir les cent décimales avec seulement dix termes :
C’est là qu’on se rend compte de l’efficacité d’algorithmes spécifiques je trouve.
#17 Re : Entraide (collège-lycée) » Croissance comparée en spécialité maths » 24-08-2024 20:05:01
Pourquoi précisément $202$ pour le nombre de décimales, et pas une autre ?
Pourquoi aussi la puissance $334$, et pas une autre ?
Hello Borassus,
Au départ, je mène les calculs avec une précision interne vraiment grande pour éviter les erreurs d’arrondi, par exemple 500 décimales, et j’essaie différentes puissances à la louche. Je m’approche des cent décimales par essais et erreurs jusqu’à arriver pile poil avec 334.
Une fois cette valeur trouvée, je réduis progressivement le nombre de décimales des calculs internes jusqu’à perdre la précision, ici autour de deux cents. C’est donc par tâtonnement que j’arrive à ces nombres qui paraissent tout droit sortis d’un chapeau.
Bon, sur ce coup être minimaliste n’était pas vraiment utile, faut bien reconnaître, je voulais simplement montrer qu’avec la formule originelle on pouvait obtenir une belle précision en rusant.
À noter qu’en ce qui me concerne, c’est avec les intérêts composés - et donc cette formule - que j’ai le mieux appréhendé ce qu’était $e$, et pas du tout avec la définition usuelle qui me reste complètement hermétique.
En définitive, quelle doit être dans la formule classique la valeur de $n$ pour atteindre 100 décimales justes ?
Aucune idée. Autant Maple est capable de manipuler des nombres avec des milliers de décimales, autant il est incapable de faire lui-même une exponentiation un peu sérieuse, Wolfram non plus d’ailleurs. Faut dire que l'exposant est assez impressionnant puisque qu'il est quand même supérieur à 2^333, c'est-à-dire 17498005798264095394980017816940970922825355447145699491406164851279623993595007385788105416184430592
Je suis toujours aussi admiratif de pouvoir manipuler aujourd'hui de tels nombres, c'est fou. Bonne soirée à tous !
#18 Re : Entraide (collège-lycée) » Croissance comparée en spécialité maths » 23-08-2024 12:13:18
Je n'ose même pas envisager 100 décimales
Bonjour,
On peut obtenir sans problème une centaine de décimales avec la formule classique. On commence par choisir pour n une belle puissance de 2, grâce à celle-ci on calcule ensuite la valeur 1+1/n, et il suffit alors de multiplier cette valeur par elle-même le même nombre de fois que cette puissance. C'est facile, c'est rapide, c'est efficace, exemple avec Maple et quelques centaines de boucles seulement :
Ce genre de calcul est quasi instantané. Maple par exemple calcule en moins d’un dixième de seconde mille décimales avec le programme modifié et une puissance de 2 de plusieurs milliers. Appréhender de « grands » nombres aujourd’hui n’a plus grand chose à voir avec le coup de l’échiquier et des grains de riz, faut bien le dire…
Sur le fond, je pense qu’il n’est nul besoin de savoir calculer une constante, il suffit que quelqu’un l’ait fait une fois pour toute et hop ça marche, et cela aussi bien pour e que pour Pi ou pour la vitesse de la lumière, bien pratique.
#19 Re : Café mathématique » Quel est la formule mathématique pour un calcul simple » 18-06-2024 14:09:37
En résumé, ce sont là des programmes bourrins qui n’ont aucune compréhension de quoi que ce soit. Ils appliquent des mécanismes automatiques à partir de méthodes figées, rien d’autre. Il ne viendrait à l’esprit de personne de parler d’ouvrier intelligent en parlant d’une tractopelle ? Eh bien là c’est la même chose, évoquer une intelligence artificielle est simplement grotesque.
#20 Re : Café mathématique » Quel est la formule mathématique pour un calcul simple » 18-06-2024 14:08:30
Et enfin avec Perplexity
Pour faire 16 cigarettes à partir de mégots, en sachant qu'il faut 4 mégots pour 1 cigarette et qu'il restera toujours 1 mégot à la fin, le calcul est le suivant:
Pour 1 cigarette, il faut 4 mégots
Donc pour 16 cigarettes, il faut 16 x 4 = 64 mégots
Cependant, comme il restera toujours 1 mégot à la fin, il faut en ajouter 1 de plus.
Donc pour faire 16 cigarettes en récupérant les mégots, avec 1 mégot restant à la fin, il vous faudra 64 + 1 = 65 mégots
#21 Re : Café mathématique » Quel est la formule mathématique pour un calcul simple » 18-06-2024 14:07:24
Avec Copilot, de Microsoft
Pour résoudre ce problème, commençons par calculer combien de mégots sont nécessaires pour 16 cigarettes. Si 1 cigarette nécessite 4 mégots, alors 16 cigarettes nécessiteront 16×4=64 mégots. Cependant, à la fin, il restera toujours 1 mégot, donc nous devons enlever 1 mégot de notre total. En conséquence, pour faire 16 cigarettes, vous aurez besoin de 63 mégots.
#22 Re : Café mathématique » Quel est la formule mathématique pour un calcul simple » 18-06-2024 14:06:03
Avec ChatGPT d’OpenAI
Pour résoudre ce problème, il faut comprendre comment les mégots sont utilisés pour faire de nouvelles cigarettes et comment ils sont recyclés. Voici une approche systématique pour déterminer le nombre total de mégots nécessaires pour faire 16 cigarettes, sachant qu'il reste toujours 1 mégot à la fin.
1. Comprendre le recyclage des mégots
1 cigarette = 4 mégots
Après fumer une cigarette, on obtient 1 mégot.
2. Processus de création de cigarettes
Pour créer une cigarette, on utilise 4 mégots.
Après avoir fumé cette cigarette, on obtient 1 mégot, qui peut être utilisé pour fabriquer de nouvelles cigarettes.
3. Calcul étape par étape
Étape initiale
On commence sans mégots, donc on doit obtenir les 16 cigarettes initiales en ayant 4 mégots par cigarette.
Production initiale
Pour 16 cigarettes initiales:16 cigarettes × 4 mégots = 64 mégots
Recyclage des mégots après avoir fumé les 16 cigarettes
Après avoir fumé les 16 cigarettes, on obtient 16 mégots.
Ces 16 mégots peuvent être utilisés pour créer plus de cigarettes.
16 mégots ÷ 4 = 4 cigarettes supplémentaires.
Utilisation des mégots des 4 cigarettes supplémentaires
Après avoir fumé ces 4 cigarettes, on obtient 4 mégots.
Ces 4 mégots peuvent être utilisés pour créer 1 cigarette supplémentaire.
Utilisation des mégots de la dernière cigarette
Après avoir fumé cette dernière cigarette, on obtient 1 mégot.
Résumé et vérification
Total initial de mégots nécessaires = 64 (pour les 16 premières cigarettes)
Total de cigarettes fabriquées à partir de mégots recyclés = 4 (de 16 mégots) + 1 (de 4 mégots) = 5 cigarettes
Donc, 16 cigarettes initiales + 5 cigarettes supplémentaires = 21 cigarettes en tout.
Pour faire 16 cigarettes, il faut donc:64 mégots au départ.
À la fin, il restera toujours 1 mégot, ce qui confirme qu'il n'y a pas de mégot en surplus inutile pour le calcul des 16 cigarettes initiales.Donc, pour faire 16 cigarettes, il vous faut 64 mégots.
#23 Re : Café mathématique » Quel est la formule mathématique pour un calcul simple » 18-06-2024 14:04:29
Avec Gemini de Google :
Étant donné qu'il vous faut 4 mégots pour faire 1 cigarette et qu'il vous restera toujours 1 mégot à la fin, il est impossible de déterminer le nombre exact de mégots nécessaires pour faire 16 cigarettes avec cette information.
Explication :
Pour faire 1 cigarette, vous utilisez 4 mégots, il vous en reste donc 0 (4 - 1 = 0).
Pour faire 2 cigarettes, vous aurez besoin de 8 mégots (4 mégots par cigarette x 2 cigarettes). Cependant, vous ne disposez que de 0 mégot restant de la cigarette précédente.
Il en va de même pour les cigarettes suivantes : le nombre de mégots nécessaires pour la prochaine cigarette double, mais vous n'avez jamais assez de mégots restants de la cigarette précédente pour les fabriquer.
Par conséquent, il n'y a pas assez de mégots disponibles pour fabriquer 16 cigarettes, peu importe le nombre de mégots que vous commencez.Pour résoudre ce problème, vous auriez besoin d'une source de mégots infinie ou d'une méthode pour récupérer et réutiliser les mégots restants de chaque cigarette.
En revanche, si vous reformulez votre question pour demander combien de mégots vous utilisez au total pour faire 16 cigarettes (sans tenir compte du mégot restant), la réponse serait 60 mégots (16 cigarettes x 4 mégots par cigarette).
#24 Re : Café mathématique » Quel est la formule mathématique pour un calcul simple » 18-06-2024 14:02:07
Bonjour tout le monde.
Perso j’ai essayé avec l’intitulé exact, à savoir « pour faire 1 cigarette, il me faut 4 mégots ; mais pour faire 16 cigarettes, il me faudrait combien de mégot, sachant qu'à la fin, il restera toujours 1 mégot ». Les résultats sont tous lamentables. Allez, on y va.
#25 Re : Café mathématique » Quel est la formule mathématique pour un calcul simple » 14-06-2024 21:37:36
En passant, on notera quand même la formule :
[...] Si on veut faire p cigarettes, il faudra p*3+1 mégots.
qui obtient bien 16*3 + 1 = 49 mégots, donc tout le mérite lui revient.