math-exercises 3.0.184 → 3.0.186
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/exercises/exercise.d.ts +1 -0
- package/lib/exercises/exercise.d.ts.map +1 -1
- package/lib/exercises/math/derivation/derivative/exp/index.d.ts +2 -0
- package/lib/exercises/math/derivation/derivative/exp/index.d.ts.map +1 -1
- package/lib/exercises/math/derivation/derivative/exp/index.js +2 -0
- package/lib/exercises/math/derivation/derivative/index.d.ts +3 -0
- package/lib/exercises/math/derivation/derivative/index.d.ts.map +1 -1
- package/lib/exercises/math/derivation/derivative/index.js +3 -0
- package/lib/exercises/math/derivation/derivativeNumber/index.d.ts +2 -0
- package/lib/exercises/math/derivation/derivativeNumber/index.d.ts.map +1 -1
- package/lib/exercises/math/derivation/derivativeNumber/index.js +2 -0
- package/lib/exercises/math/derivation/index.d.ts +1 -0
- package/lib/exercises/math/derivation/index.d.ts.map +1 -1
- package/lib/exercises/math/derivation/index.js +1 -0
- package/lib/exercises/math/derivation/tangent/index.d.ts +9 -0
- package/lib/exercises/math/derivation/tangent/index.d.ts.map +1 -1
- package/lib/exercises/math/derivation/tangent/index.js +9 -0
- package/lib/exercises/math/derivation/variations/index.d.ts +8 -0
- package/lib/exercises/math/derivation/variations/index.d.ts.map +1 -1
- package/lib/exercises/math/derivation/variations/index.js +8 -0
- package/lib/exercises/math/derivation/variations/signVarTable3dDegree.d.ts +10 -0
- package/lib/exercises/math/derivation/variations/signVarTable3dDegree.d.ts.map +1 -1
- package/lib/exercises/math/derivation/variations/signVarTable3dDegree.js +235 -231
- package/lib/exercises/math/functions/exponential/algebraic/approxExpAPlusB.d.ts.map +1 -1
- package/lib/exercises/math/functions/exponential/algebraic/approxExpAPlusB.js +91 -38
- package/lib/exercises/math/probaStat/trees/index.d.ts +1 -1
- package/lib/exercises/math/probaStat/trees/index.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/trees/index.js +1 -3
- package/lib/exercises/math/probaStat/trees/probabilityTree.d.ts +9 -3
- package/lib/exercises/math/probaStat/trees/probabilityTree.d.ts.map +1 -1
- package/lib/exercises/math/probaStat/trees/probabilityTree.js +419 -45
- package/lib/exercises/math/python/index.d.ts +1 -0
- package/lib/exercises/math/python/index.d.ts.map +1 -1
- package/lib/exercises/math/python/index.js +1 -0
- package/lib/exercises/math/python/list/index.d.ts +11 -0
- package/lib/exercises/math/python/list/index.d.ts.map +1 -0
- package/lib/exercises/math/python/list/index.js +10 -0
- package/lib/exercises/math/python/list/pyListAppend.d.ts +29 -0
- package/lib/exercises/math/python/list/pyListAppend.d.ts.map +1 -0
- package/lib/exercises/math/python/list/pyListAppend.js +280 -0
- package/lib/exercises/math/python/list/pyListCreateListByComprehension.d.ts +11 -0
- package/lib/exercises/math/python/list/pyListCreateListByComprehension.d.ts.map +1 -0
- package/lib/exercises/math/python/list/pyListCreateListByComprehension.js +231 -0
- package/lib/exercises/math/python/list/pyListCreateListInstructionCompletion.d.ts +9 -0
- package/lib/exercises/math/python/list/pyListCreateListInstructionCompletion.d.ts.map +1 -0
- package/lib/exercises/math/python/list/pyListCreateListInstructionCompletion.js +232 -0
- package/lib/exercises/math/python/list/pyListElemAtIndex.d.ts +9 -0
- package/lib/exercises/math/python/list/pyListElemAtIndex.d.ts.map +1 -0
- package/lib/exercises/math/python/list/pyListElemAtIndex.js +292 -0
- package/lib/exercises/math/python/list/pyListMutationMix.d.ts +29 -0
- package/lib/exercises/math/python/list/pyListMutationMix.d.ts.map +1 -0
- package/lib/exercises/math/python/list/pyListMutationMix.js +455 -0
- package/lib/exercises/math/python/list/pyListRemove.d.ts +29 -0
- package/lib/exercises/math/python/list/pyListRemove.d.ts.map +1 -0
- package/lib/exercises/math/python/list/pyListRemove.js +375 -0
- package/lib/exercises/math/python/list/pyListSetElemAtIndex.d.ts +29 -0
- package/lib/exercises/math/python/list/pyListSetElemAtIndex.d.ts.map +1 -0
- package/lib/exercises/math/python/list/pyListSetElemAtIndex.js +331 -0
- package/lib/exercises/math/python/list/pyListSetElemAtIndexInstructionCompletion.d.ts +9 -0
- package/lib/exercises/math/python/list/pyListSetElemAtIndexInstructionCompletion.d.ts.map +1 -0
- package/lib/exercises/math/python/list/pyListSetElemAtIndexInstructionCompletion.js +346 -0
- package/lib/exercises/math/python/list/pyListSetElemAtIndexWaterfall.d.ts +29 -0
- package/lib/exercises/math/python/list/pyListSetElemAtIndexWaterfall.d.ts.map +1 -0
- package/lib/exercises/math/python/list/pyListSetElemAtIndexWaterfall.js +394 -0
- package/lib/exercises/math/sequences/arithmetic/situations/arithmeticFindRankFromSituation.d.ts.map +1 -1
- package/lib/exercises/math/sequences/arithmetic/situations/arithmeticFindRankFromSituation.js +3 -3
- package/lib/exercises/math/sequences/arithmetic/situations/arithmeticFindThresholdFromSituation.d.ts.map +1 -1
- package/lib/exercises/math/sequences/arithmetic/situations/arithmeticFindThresholdFromSituation.js +2 -2
- package/lib/exercises/math/sequences/arithmetic/situations/index.d.ts +2 -0
- package/lib/exercises/math/sequences/arithmetic/situations/index.d.ts.map +1 -1
- package/lib/exercises/math/sequences/arithmetic/situations/index.js +2 -2
- package/lib/geogebra/geogebraConstructor.d.ts +1 -0
- package/lib/geogebra/geogebraConstructor.d.ts.map +1 -1
- package/lib/geogebra/geogebraConstructor.js +3 -0
- package/lib/index.d.ts +293 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/math/geometry/line.js +1 -1
- package/lib/math/utils/sequences/situations/seqArithmeticSituations.d.ts +2 -0
- package/lib/math/utils/sequences/situations/seqArithmeticSituations.d.ts.map +1 -1
- package/lib/math/utils/sequences/situations/seqArithmeticSituations.js +150 -128
- package/lib/math/utils/sequences/situations/seqArithmeticUtils.d.ts +1 -1
- package/lib/math/utils/sequences/situations/seqArithmeticUtils.d.ts.map +1 -1
- package/lib/math/utils/sequences/situations/seqArithmeticUtils.js +4 -1
- package/lib/tests/questionTest.d.ts.map +1 -1
- package/lib/tests/questionTest.js +1 -0
- package/lib/tree/nodes/functions/sqrtNode.d.ts +1 -1
- package/lib/tree/nodes/functions/sqrtNode.d.ts.map +1 -1
- package/lib/tree/nodes/functions/sqrtNode.js +5 -3
- package/package.json +1 -1
|
@@ -36,10 +36,10 @@ $$
|
|
|
36
36
|
const str = `${strRaw}
|
|
37
37
|
|
|
38
38
|
$$
|
|
39
|
-
u_{${rank2.frPretty(
|
|
39
|
+
u_{${rank2.frPretty(0)}} = u_{${rank1.frPretty(0)}} + (${reason.frPretty(0)})
|
|
40
40
|
$$
|
|
41
41
|
|
|
42
|
-
La relation de récurrence est, pour $n \\geq ${firstRank.frPretty(
|
|
42
|
+
La relation de récurrence est, pour $n \\geq ${firstRank.frPretty(0)}$ :
|
|
43
43
|
|
|
44
44
|
$$
|
|
45
45
|
${seqArithmeticUtils
|
|
@@ -79,23 +79,26 @@ ${alignTex([
|
|
|
79
79
|
}),
|
|
80
80
|
variationFindRank: Object.assign({}, variationFindRank, {
|
|
81
81
|
getCorrectionStuff: (initial, reason, firstRank, ...otherArgs) => {
|
|
82
|
-
const [valueAsked, _rankDecoder] = otherArgs;
|
|
82
|
+
const [valueAsked, _rankDecoder, digitsValue, digitsTarget] = otherArgs;
|
|
83
83
|
const { str: strRaw } = variationFindRank.getCorrectionStuff(initial, reason, firstRank, ...otherArgs);
|
|
84
84
|
const { answerNode, rankNode } = variationFindRank.getAnswerStuff(initial, reason, firstRank, ...otherArgs);
|
|
85
85
|
const texRankSimplified = rankNode.evaluate().frPretty(0);
|
|
86
86
|
const texAnswer = [
|
|
87
|
-
...new Set([
|
|
87
|
+
...new Set([
|
|
88
|
+
answerNode.toTex(),
|
|
89
|
+
answerNode.evaluate().frPretty(digitsTarget),
|
|
90
|
+
]),
|
|
88
91
|
].join(" = ");
|
|
89
92
|
const str = `${strRaw}
|
|
90
93
|
|
|
91
94
|
On note $p$ le rang recherché. On a :
|
|
92
95
|
|
|
93
96
|
${alignTex([
|
|
94
|
-
[`u_p`, "=", valueAsked.frPretty(
|
|
97
|
+
[`u_p`, "=", valueAsked.frPretty(digitsValue)],
|
|
95
98
|
[
|
|
96
99
|
`${add(initial, multiply(reason, "p".toTree())).toTex()}`,
|
|
97
100
|
"=",
|
|
98
|
-
valueAsked.frPretty(
|
|
101
|
+
valueAsked.frPretty(digitsValue),
|
|
99
102
|
],
|
|
100
103
|
])}
|
|
101
104
|
|
|
@@ -114,23 +117,26 @@ Le nombre recherché est donc $${texAnswer}$.`;
|
|
|
114
117
|
}),
|
|
115
118
|
variationFindThreshold: Object.assign({}, variationFindThreshold, {
|
|
116
119
|
getCorrectionStuff: (initial, reason, firstRank, ...otherArgs) => {
|
|
117
|
-
const [valueThreshold, inequationSymbol] = otherArgs;
|
|
120
|
+
const [valueThreshold, inequationSymbol, digitsValue, digitsTarget] = otherArgs;
|
|
118
121
|
const { str: strRaw } = variationFindThreshold.getCorrectionStuff(initial, reason, firstRank, ...otherArgs);
|
|
119
122
|
const { answerNode, rankNode } = variationFindThreshold.getAnswerStuff(initial, reason, firstRank, ...otherArgs);
|
|
120
123
|
const texRankSimplified = rankNode.evaluate().frPretty(0);
|
|
121
124
|
const texAnswer = [
|
|
122
|
-
...new Set([
|
|
125
|
+
...new Set([
|
|
126
|
+
answerNode.toTex(),
|
|
127
|
+
answerNode.evaluate().frPretty(digitsTarget),
|
|
128
|
+
]),
|
|
123
129
|
].join(" = ");
|
|
124
130
|
const str = `${strRaw}
|
|
125
131
|
|
|
126
132
|
On note $p$ le rang recherché. On a :
|
|
127
133
|
|
|
128
134
|
${alignTex([
|
|
129
|
-
[`u_p`, inequationSymbol.symbol, valueThreshold.frPretty(
|
|
135
|
+
[`u_p`, inequationSymbol.symbol, valueThreshold.frPretty(digitsValue)],
|
|
130
136
|
[
|
|
131
137
|
`${add(initial, multiply(reason, substract("p".toTree(), firstRank).simplify())).toTex()}`,
|
|
132
138
|
inequationSymbol.symbol,
|
|
133
|
-
valueThreshold.frPretty(
|
|
139
|
+
valueThreshold.frPretty(digitsValue),
|
|
134
140
|
],
|
|
135
141
|
])}
|
|
136
142
|
|
|
@@ -191,6 +197,8 @@ const templatesSituationsArithmetic = [
|
|
|
191
197
|
targetFromRank: (rank, _firstRank) => rank.toTree(),
|
|
192
198
|
rankFromTarget: (nodeTarget, _firstRank) => nodeTarget.evaluate(),
|
|
193
199
|
},
|
|
200
|
+
digitsValue: 2,
|
|
201
|
+
digitsTarget: 0,
|
|
194
202
|
getStrSituation: (initial, reason, firstRank, superfluousData) => {
|
|
195
203
|
if (superfluousData === undefined) {
|
|
196
204
|
return `On suppose qu'une plante, d'une hauteur initiale (jour $${firstRank.frenchify()}$) de $${initial.frPretty(2)}\\ \\textrm{cm}$,
|
|
@@ -203,7 +211,7 @@ On note $u_n$ la hauteur de la plante relevée le jour $n$, en $\\textrm{cm}$.`;
|
|
|
203
211
|
{
|
|
204
212
|
const [wateringPeriodInDays] = superfluousData.values;
|
|
205
213
|
return `On suppose qu'une plante, d'une hauteur initiale (jour $${firstRank.frenchify()}$) de $${initial.frPretty(2)}\\ \\textrm{cm}$ et
|
|
206
|
-
arrosée en moyenne tous les $${wateringPeriodInDays.frPretty(
|
|
214
|
+
arrosée en moyenne tous les $${wateringPeriodInDays.frPretty(0)}$ jours,
|
|
207
215
|
croît chaque jour de $${reason.frPretty(2)}\\ \\textrm{cm}$.
|
|
208
216
|
On note $u_n$ la hauteur de la plante relevée le jour $n$, en $\\textrm{cm}$.`;
|
|
209
217
|
}
|
|
@@ -245,7 +253,7 @@ Déduis-en comment calculer $u_{n+1}$ à partir de $u_n$.`,
|
|
|
245
253
|
const [rank1, rank2] = [target1, target2].map((target) => target + firstRank);
|
|
246
254
|
return {
|
|
247
255
|
str: `Chaque jour, la plante gagne $${reason.frPretty(2)}\\ \\textrm{cm}$.
|
|
248
|
-
Par exemple, la hauteur de la plante le jour $${target2.frPretty(
|
|
256
|
+
Par exemple, la hauteur de la plante le jour $${target2.frPretty(0)}$ est égale à celle du jour $${target1.frPretty(0)}$ augmentée de $${reason.frPretty(2)}\\ \\textrm{cm}$.`,
|
|
249
257
|
rank1,
|
|
250
258
|
rank2,
|
|
251
259
|
};
|
|
@@ -261,7 +269,7 @@ Par exemple, la hauteur de la plante le jour $${target2.frPretty(2)}$ est égale
|
|
|
261
269
|
const target = rankAsked - firstRank;
|
|
262
270
|
return `Quelle est la nature de la suite $u_n$ ?
|
|
263
271
|
|
|
264
|
-
Utilise le terme général de $u_n$ pour déterminer la hauteur de la plante au bout de $${target.frPretty(
|
|
272
|
+
Utilise le terme général de $u_n$ pour déterminer la hauteur de la plante au bout de $${target.frPretty(0)}$ jours.`;
|
|
265
273
|
},
|
|
266
274
|
getCorrectionStuff: (initial, reason, _firstRank) => {
|
|
267
275
|
return {
|
|
@@ -369,6 +377,8 @@ La hauteur de la plante relevée chaque jour, en $\\textrm{cm}$, est donc une su
|
|
|
369
377
|
targetFromRank: (rank, firstRank) => (rank - firstRank).toTree(),
|
|
370
378
|
rankFromTarget: (nodeTarget, firstRank) => nodeTarget.evaluate() + firstRank,
|
|
371
379
|
},
|
|
380
|
+
digitsValue: 2,
|
|
381
|
+
digitsTarget: 0,
|
|
372
382
|
getStrSituation: (initial, reason, firstRank, superfluousData) => {
|
|
373
383
|
if (superfluousData === undefined) {
|
|
374
384
|
return `Une compagnie de taxis propose un tarif qui inclut un montant fixe de $${initial.frPretty(2)}\\ \\textrm{€}$
|
|
@@ -382,7 +392,7 @@ On note $u_n$ le prix payé (en $\\textrm{€}$) pour $${getStrFactor(firstRank)
|
|
|
382
392
|
const [fuelConsumptionPer100Km] = superfluousData.values;
|
|
383
393
|
return `Une compagnie de taxis propose un tarif qui inclut un montant fixe de $${initial.frPretty(2)}\\ \\textrm{€}$
|
|
384
394
|
et un montant variable de $${reason.frPretty(2)}\\ \\textrm{€}$ par kilomètre parcouru.
|
|
385
|
-
Le taxi consomme $${fuelConsumptionPer100Km.frPretty(
|
|
395
|
+
Le taxi consomme $${fuelConsumptionPer100Km.frPretty(0)} \\ \\textrm{L}$ d'essence tous les 100 kilomètres.
|
|
386
396
|
On note $u_n$ le prix payé (en $\\textrm{€}$) pour $${getStrFactor(firstRank)} \\ \\textrm{km}$ parcourus.`;
|
|
387
397
|
}
|
|
388
398
|
break;
|
|
@@ -391,7 +401,7 @@ On note $u_n$ le prix payé (en $\\textrm{€}$) pour $${getStrFactor(firstRank)
|
|
|
391
401
|
const [distanceToNextCityInKm] = superfluousData.values;
|
|
392
402
|
return `Une compagnie de taxis propose un tarif qui inclut un montant fixe de $${initial.frPretty(2)}\\ \\textrm{€}$
|
|
393
403
|
et un montant variable de $${reason.frPretty(2)}\\ \\textrm{€}$ par kilomètre parcouru.
|
|
394
|
-
La distance à la ville la plus proche est de $${distanceToNextCityInKm.frPretty(
|
|
404
|
+
La distance à la ville la plus proche est de $${distanceToNextCityInKm.frPretty(0)} \\ \\textrm{km}$.
|
|
395
405
|
On note $u_n$ le prix payé (en $\\textrm{€}$) pour $${getStrFactor(firstRank)} \\ \\textrm{km}$ parcourus.`;
|
|
396
406
|
}
|
|
397
407
|
break;
|
|
@@ -402,9 +412,9 @@ On note $u_n$ le prix payé (en $\\textrm{€}$) pour $${getStrFactor(firstRank)
|
|
|
402
412
|
},
|
|
403
413
|
variationFindExplicitFormula: {
|
|
404
414
|
getAnswerNode: seqArithmeticUtils.getAnswerNodeExplicitFormula,
|
|
405
|
-
getHint: (firstRank) => `Quel calcul permet de trouver le prix
|
|
415
|
+
getHint: (firstRank) => `Quel calcul permet de trouver le prix à payer pour $10 \\ \\textrm{km}$ ?
|
|
406
416
|
|
|
407
|
-
Inspire toi de ce calcul pour déterminer
|
|
417
|
+
Inspire toi de ce calcul pour déterminer le prix à payer pour $${getStrFactor(firstRank)} \\ \\textrm{km}$.`,
|
|
408
418
|
getCorrectionStuff: (initial, reason, _firstRank) => {
|
|
409
419
|
return {
|
|
410
420
|
str: `Pour chaque kilomètre supplémentaire, la facture augmente de $${reason.frPretty(2)}\\ \\textrm{€}$.
|
|
@@ -423,7 +433,7 @@ Déduis-en comment calculer $u_{n+1}$ à partir de $u_n$.`,
|
|
|
423
433
|
const [rank1, rank2] = [target1, target2].map((target) => target + firstRank);
|
|
424
434
|
return {
|
|
425
435
|
str: `Pour chaque kilomètre supplémentaire, la facture augmente de $${reason.frPretty(2)}\\ \\textrm{€}$.
|
|
426
|
-
Par exemple, la facture pour $${target2.frPretty(
|
|
436
|
+
Par exemple, la facture pour $${target2.frPretty(0)} \\ \\textrm{km}$ est égale à celle de $${target1.frPretty(0)} \\ \\textrm{km}$ augmentée de $${reason.frPretty(2)}\\ \\textrm{€}$.`,
|
|
427
437
|
rank1,
|
|
428
438
|
rank2,
|
|
429
439
|
};
|
|
@@ -439,7 +449,7 @@ Par exemple, la facture pour $${target2.frPretty(2)} \\ \\textrm{km}$ est égale
|
|
|
439
449
|
const target = rankAsked - firstRank;
|
|
440
450
|
return `Quelle est la nature de la suite $u_n$ ?
|
|
441
451
|
|
|
442
|
-
Utilise le terme général de $u_n$ pour déterminer la facture pour $${target.frPretty(
|
|
452
|
+
Utilise le terme général de $u_n$ pour déterminer la facture pour $${target.frPretty(0)} \\ \\textrm{km}$.`;
|
|
443
453
|
},
|
|
444
454
|
getCorrectionStuff: (initial, reason, _firstRank) => {
|
|
445
455
|
return {
|
|
@@ -451,15 +461,11 @@ La facture est donc une suite arithmétique de premier terme $${initial.frPretty
|
|
|
451
461
|
variationFindRank: {
|
|
452
462
|
getStrQuestion: (_initial, _reason, _firstRank, ...otherArgs) => {
|
|
453
463
|
const [valueAsked] = otherArgs;
|
|
454
|
-
|
|
455
|
-
// valueAsked,
|
|
456
|
-
// 2,
|
|
457
|
-
// ).frPretty(2)} \\ \\textrm{€}$ ?`;
|
|
458
|
-
return `Pour combien de kilomètres la facture sera-t-elle de $${round(valueAsked, 2).frPretty(2)} ?`;
|
|
464
|
+
return `Pour combien de kilomètres la facture sera-t-elle de $${round(valueAsked, 2).frPretty(2)}$ ?`;
|
|
459
465
|
},
|
|
460
466
|
getAnswerStuff: (initial, reason, firstRank, ...otherArgs) => {
|
|
461
|
-
const [
|
|
462
|
-
const rankNode = seqArithmeticUtils.
|
|
467
|
+
const [valueAsked, rankDecoder] = otherArgs;
|
|
468
|
+
const rankNode = seqArithmeticUtils.getAnswerNodeRandomRank(initial, reason, firstRank, valueAsked);
|
|
463
469
|
const answerNode = rankDecoder.targetFromRank(rankNode.evaluate(), firstRank);
|
|
464
470
|
return { answerNode, rankNode };
|
|
465
471
|
},
|
|
@@ -531,7 +537,7 @@ La facture est donc une suite arithmétique de premier terme $${initial.frPretty
|
|
|
531
537
|
switch (rand) {
|
|
532
538
|
case 0:
|
|
533
539
|
{
|
|
534
|
-
const fridgeConsumptionPerMonth = randfloat(0.85, 0.95) * 30;
|
|
540
|
+
const fridgeConsumptionPerMonth = Math.floor(randfloat(0.85, 0.95) * 30);
|
|
535
541
|
values.push(fridgeConsumptionPerMonth);
|
|
536
542
|
}
|
|
537
543
|
break;
|
|
@@ -562,7 +568,7 @@ On note $u_n$ la facture (en $\\textrm{€}$) pour $${getStrFactor(firstRank)} \
|
|
|
562
568
|
return `Pour l’électricité de sa maison, Jimmy paye
|
|
563
569
|
un abonnement fixe de $${initial.frPretty(2)}\\ \\textrm{€}$
|
|
564
570
|
puis il paye $${reason.frPretty(2)}\\ \\textrm{€}$ par kWh consommé.
|
|
565
|
-
Son refrigétateur consomme $${fridgeConsumptionPerMonth.frPretty(
|
|
571
|
+
Son refrigétateur consomme $${fridgeConsumptionPerMonth.frPretty(0)} \\ \\textrm{kWh}$ tous les mois.
|
|
566
572
|
On note $u_n$ la facture (en $\\textrm{€}$) pour $${getStrFactor(firstRank)} \\ \\textrm{kWh}$ consommés.`;
|
|
567
573
|
}
|
|
568
574
|
break;
|
|
@@ -585,6 +591,8 @@ On note $u_n$ la facture (en $\\textrm{€}$) pour $${getStrFactor(firstRank)} \
|
|
|
585
591
|
targetFromRank: (rank, firstRank) => (rank - firstRank).toTree(),
|
|
586
592
|
rankFromTarget: (nodeTarget, firstRank) => nodeTarget.evaluate() + firstRank,
|
|
587
593
|
},
|
|
594
|
+
digitsValue: 2,
|
|
595
|
+
digitsTarget: 0,
|
|
588
596
|
variationFindExplicitFormula: {
|
|
589
597
|
getAnswerNode: seqArithmeticUtils.getAnswerNodeExplicitFormula,
|
|
590
598
|
getHint: (firstRank) => `Quel calcul permet de trouver le prix payé pour $10 \\ \\textrm{kWh}$ ?
|
|
@@ -608,7 +616,7 @@ Déduis-en comment calculer $u_{n+1}$ à partir de $u_n$.`,
|
|
|
608
616
|
const [rank1, rank2] = [target1, target2].map((target) => target + firstRank);
|
|
609
617
|
return {
|
|
610
618
|
str: `Pour chaque $\\textrm{kWh}$ supplémentaire, la facture augmente de $${reason.frPretty(2)}\\ \\textrm{€}$.
|
|
611
|
-
Par exemple, la facture pour $${target2.frPretty(
|
|
619
|
+
Par exemple, la facture pour $${target2.frPretty(0)} \\ \\textrm{kWh}$ est égale à celle de $${target1.frPretty(0)} \\ \\textrm{kWh}$ augmentée de $${reason.frPretty(2)}\\ \\textrm{€}$.`,
|
|
612
620
|
rank1,
|
|
613
621
|
rank2,
|
|
614
622
|
};
|
|
@@ -736,6 +744,8 @@ La facture est donc une suite arithmétique de premier terme $${initial.frPretty
|
|
|
736
744
|
targetFromRank: (rank, firstRank) => (100 * (rank - firstRank)).toTree(),
|
|
737
745
|
rankFromTarget: (nodeTarget, firstRank) => nodeTarget.evaluate() / 100 + firstRank,
|
|
738
746
|
},
|
|
747
|
+
digitsValue: 2,
|
|
748
|
+
digitsTarget: 0,
|
|
739
749
|
getStrSituation: (initial, reason, firstRank, superfluousData) => {
|
|
740
750
|
if (superfluousData === undefined) {
|
|
741
751
|
return `Dany décide de partir au Sud de la France.
|
|
@@ -750,7 +760,7 @@ On note $u_n$ la température ambiante (en $\\textrm{°C}$) pour $${getStrFactor
|
|
|
750
760
|
const [fuelConsumptionPer100Km] = superfluousData.values;
|
|
751
761
|
return `Dany décide de partir au Sud de la France. Il part de Valenciennes où il fait $${initial.frPretty(2)} \\ \\textrm{°C}$.
|
|
752
762
|
La température ambiante augmente de $${reason.frPretty(2)}\\ \\textrm{°C}$ à chaque centaine de $\\textrm{km}$ vers le Sud.
|
|
753
|
-
Sa voiture consomme $${fuelConsumptionPer100Km.frPretty(
|
|
763
|
+
Sa voiture consomme $${fuelConsumptionPer100Km.frPretty(0)} \\ \\textrm{L}$ d'essence tous les $100$ kilomètres.
|
|
754
764
|
On note $u_n$ la température ambiante (en $\\textrm{°C}$) pour $${getStrFactor(firstRank)}$ centaines de $\\textrm{km}$ parcourus vers le Sud.`;
|
|
755
765
|
}
|
|
756
766
|
break;
|
|
@@ -759,7 +769,7 @@ On note $u_n$ la température ambiante (en $\\textrm{°C}$) pour $${getStrFactor
|
|
|
759
769
|
const [distanceToNextBreakInKm] = superfluousData.values;
|
|
760
770
|
return `Dany décide de partir au Sud de la France. Il part de Valenciennes où il fait $${initial.frPretty(2)} \\ \\textrm{°C}$.
|
|
761
771
|
La température ambiante augmente de $${reason.frPretty(2)}\\ \\textrm{°C}$ à chaque centaine de $\\textrm{km}$ vers le Sud.
|
|
762
|
-
Il fait une pause en moyenne tous les $${distanceToNextBreakInKm.frPretty(
|
|
772
|
+
Il fait une pause en moyenne tous les $${distanceToNextBreakInKm.frPretty(0)}$ kilomètres.
|
|
763
773
|
On note $u_n$ la température ambiante (en $\\textrm{°C}$) pour $${getStrFactor(firstRank)}$ centaines de $\\textrm{km}$ parcourus vers le Sud.`;
|
|
764
774
|
}
|
|
765
775
|
break;
|
|
@@ -786,7 +796,7 @@ La température, en $\\textrm{°C}$, est donc une suite arithmétique de premier
|
|
|
786
796
|
},
|
|
787
797
|
variationFindRecurrenceFormula: {
|
|
788
798
|
getAnswerNode: seqArithmeticUtils.getAnswerNodeRecurrenceFormula,
|
|
789
|
-
getHint: (_firstRank) => `Si tu connais la température ambiante pour $300 \\ \\textrm{km}$ parcourus, comment fais-tu pour calculer la température ambiante pour $400 \\ \\textrm{km}$ parcourus ?
|
|
799
|
+
getHint: (_firstRank) => `Si tu connais la température ambiante pour $300 \\ \\textrm{km}$ (autrement dit $3$ centaines de $\\textrm{km}$) parcourus , comment fais-tu pour calculer la température ambiante pour $400 \\ \\textrm{km}$ parcourus ?
|
|
790
800
|
|
|
791
801
|
Déduis-en comment calculer $u_{n+1}$ à partir de $u_n$.`,
|
|
792
802
|
getCorrectionStuff: (_initial, reason, firstRank) => {
|
|
@@ -795,7 +805,7 @@ Déduis-en comment calculer $u_{n+1}$ à partir de $u_n$.`,
|
|
|
795
805
|
const [rank1, rank2] = [target1, target2].map((target) => target / 100 + firstRank);
|
|
796
806
|
return {
|
|
797
807
|
str: `Pour chaque centaine de $\\textrm{km}$ supplémentaire, la température augmente de $${reason.frPretty(2)}\\ \\textrm{°C}$.
|
|
798
|
-
Par exemple, la température après $${target2.frPretty(
|
|
808
|
+
Par exemple, la température après $${target2.frPretty(0)} \\ \\textrm{km}$ parcourus est égale à celle après $${target1.frPretty(0)} \\ \\textrm{km}$ augmentée de $${reason.frPretty(2)}\\ \\textrm{°C}$.`,
|
|
799
809
|
rank1,
|
|
800
810
|
rank2,
|
|
801
811
|
};
|
|
@@ -811,7 +821,7 @@ Par exemple, la température après $${target2.frPretty(2)} \\ \\textrm{km}$ par
|
|
|
811
821
|
const target = (rankAsked - firstRank) * 100;
|
|
812
822
|
return `Quelle est la nature de la suite $u_n$ ?
|
|
813
823
|
|
|
814
|
-
Utilise le terme général de $u_n$ pour déterminer la température pour $${target.frPretty(
|
|
824
|
+
Utilise le terme général de $u_n$ pour déterminer la température pour $${target.frPretty(0)} \\ \\textrm{km}$ parcourus.`;
|
|
815
825
|
},
|
|
816
826
|
getCorrectionStuff: (initial, reason, _firstRank) => {
|
|
817
827
|
return {
|
|
@@ -823,7 +833,7 @@ La température ambiante est donc une suite arithmétique de premier terme $${in
|
|
|
823
833
|
variationFindRank: {
|
|
824
834
|
getStrQuestion: (_initial, _reason, _firstRank, ...otherArgs) => {
|
|
825
835
|
const [valueAsked] = otherArgs;
|
|
826
|
-
return `Pour combien kilomètres parcourus $p$ la température sera-t-elle de $${round(valueAsked, 2).frPretty(2)} \\ \\textrm{°C}$ ?`;
|
|
836
|
+
return `Pour combien de kilomètres parcourus $p$ la température sera-t-elle de $${round(valueAsked, 2).frPretty(2)} \\ \\textrm{°C}$ ?`;
|
|
827
837
|
},
|
|
828
838
|
getAnswerStuff: (initial, reason, firstRank, ...otherArgs) => {
|
|
829
839
|
const [valueAsked, rankDecoder] = otherArgs;
|
|
@@ -919,6 +929,8 @@ La température ambiante est donc une suite arithmétique de premier terme $${in
|
|
|
919
929
|
targetFromRank: (rank, firstRank) => (rank - firstRank).toTree(),
|
|
920
930
|
rankFromTarget: (nodeTarget, firstRank) => nodeTarget.evaluate() + firstRank,
|
|
921
931
|
},
|
|
932
|
+
digitsValue: 2,
|
|
933
|
+
digitsTarget: 0,
|
|
922
934
|
getStrSituation: (initial, reason, firstRank, superfluousData) => {
|
|
923
935
|
if (superfluousData === undefined) {
|
|
924
936
|
return `Emma est salariée. Son salaire net était
|
|
@@ -933,7 +945,7 @@ On note $u_n$ son salaire net (en $\\textrm{€}$) quand elle aura $${getStrFact
|
|
|
933
945
|
const [ageWhenHired] = superfluousData.values;
|
|
934
946
|
return `Emma est salariée.
|
|
935
947
|
Son salaire net était de $${initial.frPretty(2)}\\ \\textrm{€}$ à son entrée dans l'entreprise.
|
|
936
|
-
Elle avait alors $${ageWhenHired.frPretty(
|
|
948
|
+
Elle avait alors $${ageWhenHired.frPretty(0)}$ ans.
|
|
937
949
|
Son salaire augmente de $${reason.frPretty(2)}\\ \\textrm{€}$ tous les ans.
|
|
938
950
|
|
|
939
951
|
On note $u_n$ son salaire net (en $\\textrm{€}$) quand elle aura $${getStrFactor(firstRank)}$ années d'ancienneté.`;
|
|
@@ -983,7 +995,7 @@ Déduis-en comment calculer $u_{n+1}$ à partir de $u_n$.`,
|
|
|
983
995
|
const [rank1, rank2] = [target1, target2].map((target) => target + firstRank);
|
|
984
996
|
return {
|
|
985
997
|
str: `Pour chaque année supplémentaire, le salaire d'Emma augmente de $${reason.frPretty(2)}\\ \\textrm{€}$.
|
|
986
|
-
Par exemple, son salaire pour $${target2.frPretty(
|
|
998
|
+
Par exemple, son salaire pour $${target2.frPretty(0)}$ ans d'ancienneté est égal à celui pour $${target1.frPretty(0)}$ ans augmenté de $${reason.frPretty(2)}\\ \\textrm{€}$.`,
|
|
987
999
|
rank1,
|
|
988
1000
|
rank2,
|
|
989
1001
|
};
|
|
@@ -999,7 +1011,7 @@ Par exemple, son salaire pour $${target2.frPretty(2)}$ ans d'ancienneté est ég
|
|
|
999
1011
|
const target = (rankAsked - firstRank) * 100;
|
|
1000
1012
|
return `Quelle est la nature de la suite $u_n$ ?
|
|
1001
1013
|
|
|
1002
|
-
Utilise le terme général de $u_n$ pour déterminer le salaire d'Emma pour $${target.frPretty(
|
|
1014
|
+
Utilise le terme général de $u_n$ pour déterminer le salaire d'Emma pour $${target.frPretty(0)}$ ans d'ancienneté.`;
|
|
1003
1015
|
},
|
|
1004
1016
|
getCorrectionStuff: (initial, reason, _firstRank) => {
|
|
1005
1017
|
return {
|
|
@@ -1114,6 +1126,8 @@ Le salaire d'Emma, en $\\textrm{€}$, est donc une suite arithmétique de premi
|
|
|
1114
1126
|
targetFromRank: (rank, firstRank) => (rank - firstRank).toTree(),
|
|
1115
1127
|
rankFromTarget: (nodeTarget, firstRank) => nodeTarget.evaluate() + firstRank,
|
|
1116
1128
|
},
|
|
1129
|
+
digitsValue: 0,
|
|
1130
|
+
digitsTarget: 0,
|
|
1117
1131
|
getStrSituation: (initial, reason, firstRank, superfluousData) => {
|
|
1118
1132
|
if (superfluousData === undefined) {
|
|
1119
1133
|
return `Manon a gagné un peu d'argent cet été. Début septembre, elle a $${initial.frPretty(2)}\\ \\textrm{€}$ d'économies.
|
|
@@ -1173,7 +1187,7 @@ Déduis-en comment calculer $u_{n+1}$ à partir de $u_n$.`,
|
|
|
1173
1187
|
const [rank1, rank2] = [target1, target2].map((target) => target + firstRank);
|
|
1174
1188
|
return {
|
|
1175
1189
|
str: `Après chaque semaine de dépenses supplémentaire, les économies de Manon diminuent de $${(-reason).frPretty(2)}\\ \\textrm{€}$.
|
|
1176
|
-
Par exemple, le montant de ses économies après $${target2.frPretty(
|
|
1190
|
+
Par exemple, le montant de ses économies après $${target2.frPretty(0)}$ semaines est égal à celui pour $${target1.frPretty(0)}$ semaines diminué de $${(-reason).frPretty(2)}\\ \\textrm{€}$.`,
|
|
1177
1191
|
rank1,
|
|
1178
1192
|
rank2,
|
|
1179
1193
|
};
|
|
@@ -1196,7 +1210,7 @@ Utilise le terme général de $u_n$ pour déterminer le montant des économies d
|
|
|
1196
1210
|
const target2 = 11;
|
|
1197
1211
|
return {
|
|
1198
1212
|
str: `Après chaque semaine de dépenses supplémentaire, les économies de Manon diminuent de $${(-reason).frPretty(2)}\\ \\textrm{€}$.
|
|
1199
|
-
Par exemple, le montant de ses économies après $${target2.frPretty(
|
|
1213
|
+
Par exemple, le montant de ses économies après $${target2.frPretty(0)}$ semaines est égal à celui pour $${target1.frPretty(0)}$ semaines diminué de $${(-reason).frPretty(2)}\\ \\textrm{€}$.
|
|
1200
1214
|
|
|
1201
1215
|
Le montant des économies de Manon, en $\\textrm{€}$, est donc une suite arithmétique de premier terme $${initial.frPretty(2)}$ et de raison $${reason.frPretty(2)}$.`,
|
|
1202
1216
|
};
|
|
@@ -1301,10 +1315,12 @@ Le montant des économies de Manon, en $\\textrm{€}$, est donc une suite arith
|
|
|
1301
1315
|
targetFromRank: (rank, firstRank) => (rank - firstRank).toTree(),
|
|
1302
1316
|
rankFromTarget: (nodeTarget, firstRank) => nodeTarget.evaluate() + firstRank,
|
|
1303
1317
|
},
|
|
1318
|
+
digitsValue: 0,
|
|
1319
|
+
digitsTarget: 0,
|
|
1304
1320
|
getStrSituation: (initial, reason, firstRank, superfluousData) => {
|
|
1305
1321
|
if (superfluousData === undefined) {
|
|
1306
|
-
return `Pablo joue à un jeu de quiz. Pour chaque question, le score commence à $${initial.frPretty(
|
|
1307
|
-
Puis il décroît de $${(-reason).frPretty(
|
|
1322
|
+
return `Pablo joue à un jeu de quiz. Pour chaque question, le score commence à $${initial.frPretty(0)}$ points.
|
|
1323
|
+
Puis il décroît de $${(-reason).frPretty(0)}$ points pour chaque seconde qui s'écoule avant que le joueur réponde correctement.
|
|
1308
1324
|
On note $u_n$ le score si l'on répond correctement $${getStrFactor(firstRank)}$ secondes après le début de la question.`;
|
|
1309
1325
|
}
|
|
1310
1326
|
else {
|
|
@@ -1312,8 +1328,8 @@ On note $u_n$ le score si l'on répond correctement $${getStrFactor(firstRank)}$
|
|
|
1312
1328
|
case 0:
|
|
1313
1329
|
{
|
|
1314
1330
|
const [roundedMeanDuration] = superfluousData.values;
|
|
1315
|
-
return `Pablo joue à un jeu de quiz. Pour chaque question, le score commence à $${initial.frPretty(
|
|
1316
|
-
Puis il décroît de $${(-reason).frPretty(
|
|
1331
|
+
return `Pablo joue à un jeu de quiz. Pour chaque question, le score commence à $${initial.frPretty(0)}$ points.
|
|
1332
|
+
Puis il décroît de $${(-reason).frPretty(0)}$ points pour chaque seconde qui s'écoule avant que le joueur réponde correctement.
|
|
1317
1333
|
Pablo met, la plupart du temps, $${roundedMeanDuration} \\ \\textrm{s}$ pour répondre.
|
|
1318
1334
|
On note $u_n$ le score si l'on répond correctement $${getStrFactor(firstRank)}$ secondes après le début de la question.`;
|
|
1319
1335
|
}
|
|
@@ -1321,8 +1337,8 @@ On note $u_n$ le score si l'on répond correctement $${getStrFactor(firstRank)}$
|
|
|
1321
1337
|
case 1:
|
|
1322
1338
|
{
|
|
1323
1339
|
const [indexOfQuestion] = superfluousData.values;
|
|
1324
|
-
return `Pablo joue à un jeu de quiz. Pour chaque question, le score commence à $${initial.frPretty(
|
|
1325
|
-
Puis il décroît de $${(-reason).frPretty(
|
|
1340
|
+
return `Pablo joue à un jeu de quiz. Pour chaque question, le score commence à $${initial.frPretty(0)}$ points.
|
|
1341
|
+
Puis il décroît de $${(-reason).frPretty(0)}$ points pour chaque seconde qui s'écoule avant que le joueur réponde correctement.
|
|
1326
1342
|
Pablo est actuellement à la question numéro $${indexOfQuestion}$.
|
|
1327
1343
|
On note $u_n$ le score si l'on répond correctement $${getStrFactor(firstRank)}$ secondes après le début de la question.`;
|
|
1328
1344
|
}
|
|
@@ -1340,12 +1356,12 @@ Inspire toi de ce calcul pour déterminer le score pour une durée de réponse d
|
|
|
1340
1356
|
`,
|
|
1341
1357
|
getCorrectionStuff: (initial, reason, firstRank) => {
|
|
1342
1358
|
return {
|
|
1343
|
-
str: `Chaque seconde, le score diminue de $${-reason.frPretty(
|
|
1344
|
-
Au bout de $${getStrFactor(firstRank)}$ secondes, le score aura diminué de $${getStrFactor(firstRank)} \\times ${-reason.frPretty(
|
|
1359
|
+
str: `Chaque seconde, le score diminue de $${(-reason).frPretty(0)}$ points.
|
|
1360
|
+
Au bout de $${getStrFactor(firstRank)}$ secondes, le score aura diminué de $${getStrFactor(firstRank)} \\times ${(-reason).frPretty(0)}$ points.
|
|
1345
1361
|
|
|
1346
|
-
Au départ, le score est de $${initial.frPretty(
|
|
1362
|
+
Au départ, le score est de $${initial.frPretty(0)}$ points.
|
|
1347
1363
|
|
|
1348
|
-
Le score est donc une suite arithmétique de premier terme $${initial.frPretty(
|
|
1364
|
+
Le score est donc une suite arithmétique de premier terme $${initial.frPretty(0)}$ et de raison $${reason.frPretty(0)}$.`,
|
|
1349
1365
|
};
|
|
1350
1366
|
},
|
|
1351
1367
|
},
|
|
@@ -1359,8 +1375,8 @@ Déduis-en comment calculer $u_{n+1}$ à partir de $u_n$.`,
|
|
|
1359
1375
|
const target2 = 11;
|
|
1360
1376
|
const [rank1, rank2] = [target1, target2].map((target) => target + firstRank);
|
|
1361
1377
|
return {
|
|
1362
|
-
str: `Chaque seconde, le score diminue de $${-reason.frPretty(
|
|
1363
|
-
Par exemple, le score après $${target2.frPretty(
|
|
1378
|
+
str: `Chaque seconde, le score diminue de $${(-reason).frPretty(0)}$ points.
|
|
1379
|
+
Par exemple, le score après $${target2.frPretty(0)} \\ \\textrm{s}$ est égal à celui après $${target1.frPretty(0)} \\ \\textrm{s}$ diminué de $${(-reason).frPretty(0)}$ points.`,
|
|
1364
1380
|
rank1,
|
|
1365
1381
|
rank2,
|
|
1366
1382
|
};
|
|
@@ -1376,23 +1392,23 @@ Par exemple, le score après $${target2.frPretty(2)} \\ \\textrm{s}$ est égal
|
|
|
1376
1392
|
const target = rankAsked - firstRank;
|
|
1377
1393
|
return `Quelle est la nature de la suite $u_n$ ?
|
|
1378
1394
|
|
|
1379
|
-
Utilise le terme général de $u_n$ pour déterminer le score $${target.frPretty(
|
|
1395
|
+
Utilise le terme général de $u_n$ pour déterminer le score $${target.frPretty(0)}$ secondes après le début de la question.`;
|
|
1380
1396
|
},
|
|
1381
1397
|
getCorrectionStuff: (initial, reason, firstRank, ..._otherArgs) => {
|
|
1382
1398
|
return {
|
|
1383
|
-
str: `Chaque seconde, le score diminue de $${-reason.frPretty(
|
|
1384
|
-
Au bout de $${getStrFactor(firstRank)}$ secondes, le score aura diminué de $${getStrFactor(firstRank)} \\times ${-reason.frPretty(
|
|
1399
|
+
str: `Chaque seconde, le score diminue de $${(-reason).frPretty(0)}$ points.
|
|
1400
|
+
Au bout de $${getStrFactor(firstRank)}$ secondes, le score aura diminué de $${getStrFactor(firstRank)} \\times ${(-reason).frPretty(0)}$ points.
|
|
1385
1401
|
|
|
1386
|
-
Au départ, le score est de $${initial.frPretty(
|
|
1402
|
+
Au départ, le score est de $${initial.frPretty(0)}$ points.
|
|
1387
1403
|
|
|
1388
|
-
Le score est donc une suite arithmétique de premier terme $${initial.frPretty(
|
|
1404
|
+
Le score est donc une suite arithmétique de premier terme $${initial.frPretty(0)}$ et de raison $${reason.frPretty(0)}$.`,
|
|
1389
1405
|
};
|
|
1390
1406
|
},
|
|
1391
1407
|
},
|
|
1392
1408
|
variationFindRank: {
|
|
1393
1409
|
getStrQuestion: (_initial, _reason, _firstRank, ...otherArgs) => {
|
|
1394
1410
|
const [valueAsked] = otherArgs;
|
|
1395
|
-
return `Après combien de secondes le score sera-t-il de $${round(valueAsked,
|
|
1411
|
+
return `Après combien de secondes le score sera-t-il de $${round(valueAsked, 0).frPretty(0)}$ points ?`;
|
|
1396
1412
|
},
|
|
1397
1413
|
getAnswerStuff: (initial, reason, firstRank, ...otherArgs) => {
|
|
1398
1414
|
const [valueAsked, rankDecoder] = otherArgs;
|
|
@@ -1404,12 +1420,12 @@ Le score est donc une suite arithmétique de premier terme $${initial.frPretty(2
|
|
|
1404
1420
|
const [valueAsked] = otherArgs;
|
|
1405
1421
|
return `Quelle est la nature de la suite $(u_n)$ ?
|
|
1406
1422
|
|
|
1407
|
-
Utilise le terme général de $(u_n)$ pour déterminer quand $u_p = ${valueAsked.frPretty(
|
|
1423
|
+
Utilise le terme général de $(u_n)$ pour déterminer quand $u_p = ${valueAsked.frPretty(0)}$.`;
|
|
1408
1424
|
},
|
|
1409
1425
|
getCorrectionStuff: (initial, reason, _firstRank) => {
|
|
1410
1426
|
return {
|
|
1411
|
-
str: `Chaque seconde, le score diminue de $${-reason.frPretty(
|
|
1412
|
-
Le score est donc une suite arithmétique de premier terme $${initial.frPretty(
|
|
1427
|
+
str: `Chaque seconde, le score diminue de $${(-reason).frPretty(0)}$ points.
|
|
1428
|
+
Le score est donc une suite arithmétique de premier terme $${initial.frPretty(0)}$ et de raison $${reason.frPretty(0)}$.`,
|
|
1413
1429
|
};
|
|
1414
1430
|
},
|
|
1415
1431
|
},
|
|
@@ -1420,10 +1436,10 @@ Le score est donc une suite arithmétique de premier terme $${initial.frPretty(2
|
|
|
1420
1436
|
switch (inequationSymbol.symbol) {
|
|
1421
1437
|
case "<":
|
|
1422
1438
|
case "\\le":
|
|
1423
|
-
return `Pour quelle durée de réponse maximum le score sera t-il ${isStrict ? "supérieur" : "supérieur ou égal"} à $${valueThreshold.frPretty(
|
|
1439
|
+
return `Pour quelle durée de réponse maximum le score sera t-il ${isStrict ? "supérieur" : "supérieur ou égal"} à $${valueThreshold.frPretty(0)}$ points ?`;
|
|
1424
1440
|
case ">":
|
|
1425
1441
|
case "\\ge":
|
|
1426
|
-
return `Quelle est la durée de réponse pour laquelle le score ${isStrict ? "sera en dessous de" : "égalera ou sera en dessous de"} $${valueThreshold.frPretty(
|
|
1442
|
+
return `Quelle est la durée de réponse pour laquelle le score ${isStrict ? "sera en dessous de" : "égalera ou sera en dessous de"} $${valueThreshold.frPretty(0)}$ points ?`;
|
|
1427
1443
|
}
|
|
1428
1444
|
},
|
|
1429
1445
|
getAnswerStuff: (initial, reason, firstRank, ...otherArgs) => {
|
|
@@ -1447,12 +1463,12 @@ Le score est donc une suite arithmétique de premier terme $${initial.frPretty(2
|
|
|
1447
1463
|
})();
|
|
1448
1464
|
return `Quelle est la nature de la suite $u_n$ ?
|
|
1449
1465
|
|
|
1450
|
-
Utilise le terme général de $(u_n)$ pour déterminer ${texP} $p$ tel que $u_p ${inequationSymbol.symbol} ${valueThreshold.frPretty(
|
|
1466
|
+
Utilise le terme général de $(u_n)$ pour déterminer ${texP} $p$ tel que $u_p ${inequationSymbol.symbol} ${valueThreshold.frPretty(0)}$.`;
|
|
1451
1467
|
},
|
|
1452
1468
|
getCorrectionStuff: (initial, reason, _firstRank) => {
|
|
1453
1469
|
return {
|
|
1454
|
-
str: `Chaque seconde, le score diminue de $${-reason.frPretty(
|
|
1455
|
-
Le score est donc une suite arithmétique de premier terme $${initial.frPretty(
|
|
1470
|
+
str: `Chaque seconde, le score diminue de $${(-reason).frPretty(0)}$ points.
|
|
1471
|
+
Le score est donc une suite arithmétique de premier terme $${initial.frPretty(0)}$ et de raison $${reason.frPretty(0)}$.`,
|
|
1456
1472
|
};
|
|
1457
1473
|
},
|
|
1458
1474
|
},
|
|
@@ -1488,6 +1504,8 @@ Le score est donc une suite arithmétique de premier terme $${initial.frPretty(2
|
|
|
1488
1504
|
targetFromRank: (rank, firstRank) => (rank - firstRank).toTree(),
|
|
1489
1505
|
rankFromTarget: (nodeTarget, firstRank) => nodeTarget.evaluate() + firstRank,
|
|
1490
1506
|
},
|
|
1507
|
+
digitsValue: 2,
|
|
1508
|
+
digitsTarget: 0,
|
|
1491
1509
|
getStrSituation: (initial, reason, firstRank, superfluousData) => {
|
|
1492
1510
|
if (superfluousData === undefined) {
|
|
1493
1511
|
return `Daryl utilise un phare à batterie sur son chantier, qu'il laisse allumé.
|
|
@@ -1530,8 +1548,8 @@ Inspire toi de ce calcul pour déterminer le niveau de charge pour une durée d'
|
|
|
1530
1548
|
`,
|
|
1531
1549
|
getCorrectionStuff: (initial, reason, firstRank) => {
|
|
1532
1550
|
return {
|
|
1533
|
-
str: `Chaque heure, le niveau de charge diminue de $${-reason.frPretty(2)} \\%$.
|
|
1534
|
-
Au bout de $${getStrFactor(firstRank)} \\ \\textrm{h}$, le niveau aura diminué de $${getStrFactor(firstRank)} \\times ${-reason.frPretty(2)} \\%$.
|
|
1551
|
+
str: `Chaque heure, le niveau de charge diminue de $${(-reason).frPretty(2)} \\%$.
|
|
1552
|
+
Au bout de $${getStrFactor(firstRank)} \\ \\textrm{h}$, le niveau aura diminué de $${getStrFactor(firstRank)} \\times ${(-reason).frPretty(2)} \\%$.
|
|
1535
1553
|
|
|
1536
1554
|
Au départ, le niveau est de $${initial.frPretty(2)} \\%$.
|
|
1537
1555
|
|
|
@@ -1549,8 +1567,8 @@ Déduis-en comment calculer $u_{n+1}$ à partir de $u_n$.`,
|
|
|
1549
1567
|
const target2 = 5;
|
|
1550
1568
|
const [rank1, rank2] = [target1, target2].map((target) => target + firstRank);
|
|
1551
1569
|
return {
|
|
1552
|
-
str: `Chaque heure, le niveau de charge diminue de $${-reason.frPretty(2)} \\%$.
|
|
1553
|
-
Par exemple, le niveau après $${target2.frPretty(
|
|
1570
|
+
str: `Chaque heure, le niveau de charge diminue de $${(-reason).frPretty(2)} \\%$.
|
|
1571
|
+
Par exemple, le niveau après $${target2.frPretty(0)} \\ \\textrm{h}$ d'utilisation est égal à celui après $${target1.frPretty(0)} \\ \\textrm{h}$ d'utilisation diminué de $${(-reason).frPretty(2)} \\%$.`,
|
|
1554
1572
|
rank1,
|
|
1555
1573
|
rank2,
|
|
1556
1574
|
};
|
|
@@ -1566,12 +1584,12 @@ Par exemple, le niveau après $${target2.frPretty(2)} \\ \\textrm{h}$ d'utilisat
|
|
|
1566
1584
|
const target = rankAsked - firstRank;
|
|
1567
1585
|
return `Quelle est la nature de la suite $u_n$ ?
|
|
1568
1586
|
|
|
1569
|
-
Utilise le terme général de $u_n$ pour déterminer le niveau de charge après $${target.frPretty(
|
|
1587
|
+
Utilise le terme général de $u_n$ pour déterminer le niveau de charge après $${target.frPretty(0)} \\ \\textrm{h}$ d'utilisation.`;
|
|
1570
1588
|
},
|
|
1571
1589
|
getCorrectionStuff: (initial, reason, firstRank, ..._otherArgs) => {
|
|
1572
1590
|
return {
|
|
1573
|
-
str: `Chaque heure, le niveau de charge diminue de $${-reason.frPretty(2)} \\%$.
|
|
1574
|
-
Au bout de $${getStrFactor(firstRank)} \\ \\textrm{h}$, le niveau aura diminué de $${getStrFactor(firstRank)} \\times ${-reason.frPretty(2)} \\%$.
|
|
1591
|
+
str: `Chaque heure, le niveau de charge diminue de $${(-reason).frPretty(2)} \\%$.
|
|
1592
|
+
Au bout de $${getStrFactor(firstRank)} \\ \\textrm{h}$, le niveau aura diminué de $${getStrFactor(firstRank)} \\times ${(-reason).frPretty(2)} \\%$.
|
|
1575
1593
|
|
|
1576
1594
|
Au départ, le niveau est de $${initial.frPretty(2)} \\%$.
|
|
1577
1595
|
|
|
@@ -1598,7 +1616,7 @@ Utilise le terme général de $(u_n)$ pour déterminer quand $u_p = ${valueAsked
|
|
|
1598
1616
|
},
|
|
1599
1617
|
getCorrectionStuff: (initial, reason, _firstRank) => {
|
|
1600
1618
|
return {
|
|
1601
|
-
str: `Chaque heure, le niveau de charge diminue de $${-reason.frPretty(2)} \\%$.
|
|
1619
|
+
str: `Chaque heure, le niveau de charge diminue de $${(-reason).frPretty(2)} \\%$.
|
|
1602
1620
|
Le niveau de charge est donc une suite arithmétique de premier terme $${initial.frPretty(2)}$ et de raison $${reason.frPretty(2)}$.`,
|
|
1603
1621
|
};
|
|
1604
1622
|
},
|
|
@@ -1641,7 +1659,7 @@ Utilise le terme général de $(u_n)$ pour déterminer ${texP} $p$ tel que $u_p
|
|
|
1641
1659
|
},
|
|
1642
1660
|
getCorrectionStuff: (initial, reason, _firstRank) => {
|
|
1643
1661
|
return {
|
|
1644
|
-
str: `Chaque heure, le niveau de charge diminue de $${-reason.frPretty(2)} \\%$.
|
|
1662
|
+
str: `Chaque heure, le niveau de charge diminue de $${(-reason).frPretty(2)} \\%$.
|
|
1645
1663
|
Le niveau de charge est donc une suite arithmétique de premier terme $${initial.frPretty(2)}$ et de raison $${reason.frPretty(2)}$.`,
|
|
1646
1664
|
};
|
|
1647
1665
|
},
|
|
@@ -1678,6 +1696,8 @@ Le niveau de charge est donc une suite arithmétique de premier terme $${initial
|
|
|
1678
1696
|
targetFromRank: (rank, firstRank) => (rank - firstRank).toTree(),
|
|
1679
1697
|
rankFromTarget: (nodeTarget, firstRank) => nodeTarget.evaluate() + firstRank,
|
|
1680
1698
|
},
|
|
1699
|
+
digitsValue: 0,
|
|
1700
|
+
digitsTarget: 0,
|
|
1681
1701
|
getStrSituation: (initial, reason, firstRank, superfluousData) => {
|
|
1682
1702
|
if (superfluousData === undefined) {
|
|
1683
1703
|
return `Un gigantesque buffet est organisé. Au départ, sur les tables de service, il y a $${initial.frenchify()}$ amuse-bouches.
|
|
@@ -1690,17 +1710,17 @@ On note $u_n$ le nombre d'amuse-bouches restant après $${getStrFactor(firstRank
|
|
|
1690
1710
|
{
|
|
1691
1711
|
const [numberOfPeople] = superfluousData.values;
|
|
1692
1712
|
return `Un gigantesque buffet est organisé. Au départ, sur les tables de service, il y a $${initial.frPretty(2)}$ amuse-bouches.
|
|
1693
|
-
$${(-reason).frPretty(
|
|
1694
|
-
Il y a en tout $${numberOfPeople.frPretty(
|
|
1713
|
+
$${(-reason).frPretty(0)}$ amuse-bouches sont mangés toutes les minutes.
|
|
1714
|
+
Il y a en tout $${numberOfPeople.frPretty(0)}$ convives.
|
|
1695
1715
|
On note $u_n$ le nombre d'amuse-bouches restant après $${getStrFactor(firstRank)} \\ \\textrm{min}$.`;
|
|
1696
1716
|
}
|
|
1697
1717
|
break;
|
|
1698
1718
|
case 1:
|
|
1699
1719
|
{
|
|
1700
1720
|
const [nbOfGlassesPerMinute] = superfluousData.values;
|
|
1701
|
-
return `Un gigantesque buffet est organisé. Au départ, sur les tables de service, il y a $${initial.frPretty(
|
|
1702
|
-
$${nbOfGlassesPerMinute.frPretty(
|
|
1703
|
-
$${(-reason).frPretty(
|
|
1721
|
+
return `Un gigantesque buffet est organisé. Au départ, sur les tables de service, il y a $${initial.frPretty(0)}$ amuse-bouches.
|
|
1722
|
+
$${nbOfGlassesPerMinute.frPretty(0)}$ verres sont servis toutes les minutes.
|
|
1723
|
+
$${(-reason).frPretty(0)}$ amuse-bouches sont mangés toutes les minutes.
|
|
1704
1724
|
On note $u_n$ le nombre d'amuse-bouches restant après $${getStrFactor(firstRank)} \\ \\textrm{min}$.`;
|
|
1705
1725
|
}
|
|
1706
1726
|
break;
|
|
@@ -1717,12 +1737,12 @@ Inspire toi de ce calcul pour déterminer le nombre d'amuse-bouches restant apr
|
|
|
1717
1737
|
`,
|
|
1718
1738
|
getCorrectionStuff: (initial, reason, firstRank) => {
|
|
1719
1739
|
return {
|
|
1720
|
-
str: `Chaque minute, le nombre d'amuse-bouches diminue de $${-reason.frPretty(
|
|
1721
|
-
Au bout de $${getStrFactor(firstRank)} \\ \\textrm{min}$, le nombre d'amuse-bouches aura diminué de $${getStrFactor(firstRank)} \\times ${-reason.frPretty(
|
|
1740
|
+
str: `Chaque minute, le nombre d'amuse-bouches diminue de $${(-reason).frPretty(0)}$.
|
|
1741
|
+
Au bout de $${getStrFactor(firstRank)} \\ \\textrm{min}$, le nombre d'amuse-bouches aura diminué de $${getStrFactor(firstRank)} \\times ${(-reason).frPretty(0)}$.
|
|
1722
1742
|
|
|
1723
|
-
Au départ, il y en a $${initial.frPretty(
|
|
1743
|
+
Au départ, il y en a $${initial.frPretty(0)}$.
|
|
1724
1744
|
|
|
1725
|
-
Le nombre d'amuse-bouches est donc une suite arithmétique de premier terme $${initial.frPretty(
|
|
1745
|
+
Le nombre d'amuse-bouches est donc une suite arithmétique de premier terme $${initial.frPretty(0)}$ et de raison $${reason.frPretty(0)}$.`,
|
|
1726
1746
|
};
|
|
1727
1747
|
},
|
|
1728
1748
|
},
|
|
@@ -1736,8 +1756,8 @@ Déduis-en comment calculer $u_{n+1}$ à partir de $u_n$.`,
|
|
|
1736
1756
|
const target2 = 5;
|
|
1737
1757
|
const [rank1, rank2] = [target1, target2].map((target) => target + firstRank);
|
|
1738
1758
|
return {
|
|
1739
|
-
str: `Chaque minute, le nombre d'amuse-bouches diminue de $${-reason.frPretty(
|
|
1740
|
-
Par exemple, le nombre d'amuse-bouches restant après $${target2.frPretty(
|
|
1759
|
+
str: `Chaque minute, le nombre d'amuse-bouches diminue de $${(-reason).frPretty(0)}$.
|
|
1760
|
+
Par exemple, le nombre d'amuse-bouches restant après $${target2.frPretty(0)} \\ \\textrm{min}$ est égal à celui après $${target1.frPretty(0)} \\ \\textrm{min}$ d'utilisation diminué de $${(-reason).frPretty(0)}$.`,
|
|
1741
1761
|
rank1,
|
|
1742
1762
|
rank2,
|
|
1743
1763
|
};
|
|
@@ -1753,23 +1773,23 @@ Par exemple, le nombre d'amuse-bouches restant après $${target2.frPretty(2)} \\
|
|
|
1753
1773
|
const target = rankAsked - firstRank;
|
|
1754
1774
|
return `Quelle est la nature de la suite $u_n$ ?
|
|
1755
1775
|
|
|
1756
|
-
Utilise le terme général de $u_n$ pour déterminer le nombre d'amuse-bouches restant après $${target.frPretty(
|
|
1776
|
+
Utilise le terme général de $u_n$ pour déterminer le nombre d'amuse-bouches restant après $${target.frPretty(0)} \\ \\textrm{min}$ de buffet.`;
|
|
1757
1777
|
},
|
|
1758
1778
|
getCorrectionStuff: (initial, reason, firstRank, ..._otherArgs) => {
|
|
1759
1779
|
return {
|
|
1760
|
-
str: `Chaque minute, le nombre d'amuse-bouches diminue de $${-reason.frPretty(
|
|
1761
|
-
Au bout de $${getStrFactor(firstRank)} \\ \\textrm{min}$, le nombre d'amuse-bouches aura diminué de $${getStrFactor(firstRank)} \\times ${-reason.frPretty(
|
|
1780
|
+
str: `Chaque minute, le nombre d'amuse-bouches diminue de $${(-reason).frPretty(0)}$.
|
|
1781
|
+
Au bout de $${getStrFactor(firstRank)} \\ \\textrm{min}$, le nombre d'amuse-bouches aura diminué de $${getStrFactor(firstRank)} \\times ${(-reason).frPretty(0)}$.
|
|
1762
1782
|
|
|
1763
|
-
Au départ, il y en a $${initial.frPretty(
|
|
1783
|
+
Au départ, il y en a $${initial.frPretty(0)}$.
|
|
1764
1784
|
|
|
1765
|
-
Le nombre d'amuse-bouches est donc une suite arithmétique de premier terme $${initial.frPretty(
|
|
1785
|
+
Le nombre d'amuse-bouches est donc une suite arithmétique de premier terme $${initial.frPretty(0)}$ et de raison $${reason.frPretty(0)}$.`,
|
|
1766
1786
|
};
|
|
1767
1787
|
},
|
|
1768
1788
|
},
|
|
1769
1789
|
variationFindRank: {
|
|
1770
1790
|
getStrQuestion: (_initial, _reason, _firstRank, ...otherArgs) => {
|
|
1771
1791
|
const [valueAsked] = otherArgs;
|
|
1772
|
-
return `Après combien de minutes le nombre d'amuse-bouches sera-t-il de $${round(valueAsked,
|
|
1792
|
+
return `Après combien de minutes le nombre d'amuse-bouches sera-t-il de $${round(valueAsked, 0).frPretty(0)}$ ?`;
|
|
1773
1793
|
},
|
|
1774
1794
|
getAnswerStuff: (initial, reason, firstRank, ...otherArgs) => {
|
|
1775
1795
|
const [valueAsked, rankDecoder] = otherArgs;
|
|
@@ -1781,12 +1801,12 @@ Le nombre d'amuse-bouches est donc une suite arithmétique de premier terme $${i
|
|
|
1781
1801
|
const [valueAsked] = otherArgs;
|
|
1782
1802
|
return `Quelle est la nature de la suite $(u_n)$ ?
|
|
1783
1803
|
|
|
1784
|
-
Utilise le terme général de $(u_n)$ pour déterminer quand $u_p = ${valueAsked.frPretty(
|
|
1804
|
+
Utilise le terme général de $(u_n)$ pour déterminer quand $u_p = ${valueAsked.frPretty(0)}$.`;
|
|
1785
1805
|
},
|
|
1786
1806
|
getCorrectionStuff: (initial, reason, _firstRank) => {
|
|
1787
1807
|
return {
|
|
1788
|
-
str: `Chaque minute, le nombre d'amuse-bouches diminue de $${-reason.frPretty(
|
|
1789
|
-
Le nombre d'amuse-bouches est donc une suite arithmétique de premier terme $${initial.frPretty(
|
|
1808
|
+
str: `Chaque minute, le nombre d'amuse-bouches diminue de $${(-reason).frPretty(0)}$.
|
|
1809
|
+
Le nombre d'amuse-bouches est donc une suite arithmétique de premier terme $${initial.frPretty(0)}$ et de raison $${reason.frPretty(0)}$.`,
|
|
1790
1810
|
};
|
|
1791
1811
|
},
|
|
1792
1812
|
},
|
|
@@ -1797,12 +1817,12 @@ Le nombre d'amuse-bouches est donc une suite arithmétique de premier terme $${i
|
|
|
1797
1817
|
switch (inequationSymbol.symbol) {
|
|
1798
1818
|
case "<":
|
|
1799
1819
|
case "\\le":
|
|
1800
|
-
return `Quelle sera la dernière minute où le nombre d'amuse-bouches sera ${isStrict ? "supérieur" : "supérieur ou égal"} à $${valueThreshold.frPretty(
|
|
1820
|
+
return `Quelle sera la dernière minute où le nombre d'amuse-bouches sera ${isStrict ? "supérieur" : "supérieur ou égal"} à $${valueThreshold.frPretty(0)}$ ?`;
|
|
1801
1821
|
case ">":
|
|
1802
1822
|
case "\\ge":
|
|
1803
1823
|
return `Quelle sera la minute où le nombre d'amuse-bouches ${isStrict
|
|
1804
1824
|
? "passera strictement en dessous de"
|
|
1805
|
-
: "égalera ou passera en dessous de"} $${valueThreshold.frPretty(
|
|
1825
|
+
: "égalera ou passera en dessous de"} $${valueThreshold.frPretty(0)}$ ?`;
|
|
1806
1826
|
}
|
|
1807
1827
|
},
|
|
1808
1828
|
getAnswerStuff: (initial, reason, firstRank, ...otherArgs) => {
|
|
@@ -1826,12 +1846,12 @@ Le nombre d'amuse-bouches est donc une suite arithmétique de premier terme $${i
|
|
|
1826
1846
|
})();
|
|
1827
1847
|
return `Quelle est la nature de la suite $u_n$ ?
|
|
1828
1848
|
|
|
1829
|
-
Utilise le terme général de $(u_n)$ pour déterminer ${texP} $p$ tel que $u_p ${inequationSymbol.symbol} ${valueThreshold.frPretty(
|
|
1849
|
+
Utilise le terme général de $(u_n)$ pour déterminer ${texP} $p$ tel que $u_p ${inequationSymbol.symbol} ${valueThreshold.frPretty(0)}$.`;
|
|
1830
1850
|
},
|
|
1831
1851
|
getCorrectionStuff: (initial, reason, _firstRank) => {
|
|
1832
1852
|
return {
|
|
1833
|
-
str: `Chaque minute, le nombre d'amuse-bouches diminue de $${-reason.frPretty(
|
|
1834
|
-
Le nombre d'amuse-bouches est donc une suite arithmétique de premier terme $${initial.frPretty(
|
|
1853
|
+
str: `Chaque minute, le nombre d'amuse-bouches diminue de $${(-reason).frPretty(0)}$.
|
|
1854
|
+
Le nombre d'amuse-bouches est donc une suite arithmétique de premier terme $${initial.frPretty(0)}$ et de raison $${reason.frPretty(0)}$.`,
|
|
1835
1855
|
};
|
|
1836
1856
|
},
|
|
1837
1857
|
},
|
|
@@ -1867,10 +1887,12 @@ Le nombre d'amuse-bouches est donc une suite arithmétique de premier terme $${i
|
|
|
1867
1887
|
targetFromRank: (rank, firstRank) => (rank - firstRank).toTree(),
|
|
1868
1888
|
rankFromTarget: (nodeTarget, firstRank) => nodeTarget.evaluate() + firstRank,
|
|
1869
1889
|
},
|
|
1890
|
+
digitsValue: 0,
|
|
1891
|
+
digitsTarget: 0,
|
|
1870
1892
|
getStrSituation: (initial, reason, firstRank, superfluousData) => {
|
|
1871
1893
|
if (superfluousData === undefined) {
|
|
1872
|
-
return `L'année de la sortie du jeu vidéo Locket Rig, ce même jeu avait $${initial.frPretty(
|
|
1873
|
-
Tous les ans, $${(-reason).frPretty(
|
|
1894
|
+
return `L'année de la sortie du jeu vidéo Locket Rig, ce même jeu avait $${initial.frPretty(0)}$ joueurs réguliers.
|
|
1895
|
+
Tous les ans, $${(-reason).frPretty(0)}$ joueurs arrêtent de jouer régulièrement à Locket Rig.
|
|
1874
1896
|
On note $u_n$ le nombre de joueurs réguliers de Locket Rig $${getStrFactor(firstRank)}$ années après sa sortie.`;
|
|
1875
1897
|
}
|
|
1876
1898
|
else {
|
|
@@ -1878,18 +1900,18 @@ On note $u_n$ le nombre de joueurs réguliers de Locket Rig $${getStrFactor(firs
|
|
|
1878
1900
|
case 0:
|
|
1879
1901
|
{
|
|
1880
1902
|
const [numberOfPlayersOfNordFight] = superfluousData.values;
|
|
1881
|
-
return `L'année de la sortie du jeu vidéo Locket Rig, ce même jeu avait $${initial.frPretty(
|
|
1882
|
-
Tous les ans, $${(-reason).frPretty(
|
|
1883
|
-
Actuellement, $${numberOfPlayersOfNordFight.frPretty(
|
|
1903
|
+
return `L'année de la sortie du jeu vidéo Locket Rig, ce même jeu avait $${initial.frPretty(0)}$ joueurs réguliers.
|
|
1904
|
+
Tous les ans, $${(-reason).frPretty(0)}$ joueurs arrêtent de jouer régulièrement à Locket Rig.
|
|
1905
|
+
Actuellement, $${numberOfPlayersOfNordFight.frPretty(0)}$ jouent régulièrement au jeu vidéo Nord Fight.
|
|
1884
1906
|
On note $u_n$ le nombre de joueurs réguliers de Locket Rig $${getStrFactor(firstRank)}$ années après sa sortie.`;
|
|
1885
1907
|
}
|
|
1886
1908
|
break;
|
|
1887
1909
|
case 1:
|
|
1888
1910
|
{
|
|
1889
1911
|
const [nbOfSpectatorsAtPhysicalEvent] = superfluousData.values;
|
|
1890
|
-
return `L'année de la sortie du jeu vidéo Locket Rig, ce même jeu avait $${initial.frPretty(
|
|
1891
|
-
Il y avait $${nbOfSpectatorsAtPhysicalEvent.frPretty(
|
|
1892
|
-
Tous les ans, $${(-reason).frPretty(
|
|
1912
|
+
return `L'année de la sortie du jeu vidéo Locket Rig, ce même jeu avait $${initial.frPretty(0)}$ joueurs réguliers.
|
|
1913
|
+
Il y avait $${nbOfSpectatorsAtPhysicalEvent.frPretty(0)}$ spectateurs au premier tournoi organisé dans une grande salle de concert.
|
|
1914
|
+
Tous les ans, $${(-reason).frPretty(0)}$ joueurs arrêtent de jouer régulièrement à Locket Rig.
|
|
1893
1915
|
On note $u_n$ le nombre de joueurs réguliers de Locket Rig $${getStrFactor(firstRank)}$ années après sa sortie.`;
|
|
1894
1916
|
}
|
|
1895
1917
|
break;
|
|
@@ -1906,12 +1928,12 @@ Inspire toi de ce calcul pour déterminer le nombre de joueurs $${getStrFactor(f
|
|
|
1906
1928
|
`,
|
|
1907
1929
|
getCorrectionStuff: (initial, reason, firstRank) => {
|
|
1908
1930
|
return {
|
|
1909
|
-
str: `Chaque année, le nombre de joueurs diminue de $${-reason.frPretty(
|
|
1910
|
-
Au bout de $${getStrFactor(firstRank)}$ années, le nombre de joueurs aura diminué de $${getStrFactor(firstRank)} \\times ${-reason.frPretty(
|
|
1931
|
+
str: `Chaque année, le nombre de joueurs diminue de $${(-reason).frPretty(0)}$.
|
|
1932
|
+
Au bout de $${getStrFactor(firstRank)}$ années, le nombre de joueurs aura diminué de $${getStrFactor(firstRank)} \\times ${(-reason).frPretty(0)}$.
|
|
1911
1933
|
|
|
1912
|
-
Au départ, il y en avait $${initial.frPretty(
|
|
1934
|
+
Au départ, il y en avait $${initial.frPretty(0)}$.
|
|
1913
1935
|
|
|
1914
|
-
Le nombre de joueurs réguliers de Locket Rig est donc une suite arithmétique de premier terme $${initial.frPretty(
|
|
1936
|
+
Le nombre de joueurs réguliers de Locket Rig est donc une suite arithmétique de premier terme $${initial.frPretty(0)}$ et de raison $${reason.frPretty(0)}$.`,
|
|
1915
1937
|
};
|
|
1916
1938
|
},
|
|
1917
1939
|
},
|
|
@@ -1925,8 +1947,8 @@ Déduis-en comment calculer $u_{n+1}$ à partir de $u_n$.`,
|
|
|
1925
1947
|
const target2 = 5;
|
|
1926
1948
|
const [rank1, rank2] = [target1, target2].map((target) => target + firstRank);
|
|
1927
1949
|
return {
|
|
1928
|
-
str: `Chaque année, le nombre de joueurs diminue de $${-reason.frPretty(
|
|
1929
|
-
Par exemple, le nombre de joueurs restant après $${target2.frPretty(
|
|
1950
|
+
str: `Chaque année, le nombre de joueurs diminue de $${(-reason).frPretty(0)}$.
|
|
1951
|
+
Par exemple, le nombre de joueurs restant après $${target2.frPretty(0)}$ années est égal à celui après $${target1.frPretty(0)}$ années diminué de $${(-reason).frPretty(0)}$.`,
|
|
1930
1952
|
rank1,
|
|
1931
1953
|
rank2,
|
|
1932
1954
|
};
|
|
@@ -1942,23 +1964,23 @@ Par exemple, le nombre de joueurs restant après $${target2.frPretty(2)}$ année
|
|
|
1942
1964
|
const target = rankAsked - firstRank;
|
|
1943
1965
|
return `Quelle est la nature de la suite $u_n$ ?
|
|
1944
1966
|
|
|
1945
|
-
Utilise le terme général de $u_n$ pour déterminer le nombre de joueurs restant après $${target.frPretty(
|
|
1967
|
+
Utilise le terme général de $u_n$ pour déterminer le nombre de joueurs restant après $${target.frPretty(0)}$ années.`;
|
|
1946
1968
|
},
|
|
1947
1969
|
getCorrectionStuff: (initial, reason, firstRank, ..._otherArgs) => {
|
|
1948
1970
|
return {
|
|
1949
|
-
str: `Chaque année, le nombre de joueurs diminue de $${-reason.frPretty(
|
|
1950
|
-
Au bout de $${getStrFactor(firstRank)}$ années, le nombre de joueurs aura diminué de $${getStrFactor(firstRank)} \\times ${-reason.frPretty(
|
|
1971
|
+
str: `Chaque année, le nombre de joueurs diminue de $${(-reason).frPretty(0)}$.
|
|
1972
|
+
Au bout de $${getStrFactor(firstRank)}$ années, le nombre de joueurs aura diminué de $${getStrFactor(firstRank)} \\times ${(-reason).frPretty(0)}$.
|
|
1951
1973
|
|
|
1952
|
-
Au départ, il y en avait $${initial.frPretty(
|
|
1974
|
+
Au départ, il y en avait $${initial.frPretty(0)}$.
|
|
1953
1975
|
|
|
1954
|
-
Le nombre de joueurs réguliers de Locket Rig est donc une suite arithmétique de premier terme $${initial.frPretty(
|
|
1976
|
+
Le nombre de joueurs réguliers de Locket Rig est donc une suite arithmétique de premier terme $${initial.frPretty(0)}$ et de raison $${reason.frPretty(0)}$.`,
|
|
1955
1977
|
};
|
|
1956
1978
|
},
|
|
1957
1979
|
},
|
|
1958
1980
|
variationFindRank: {
|
|
1959
1981
|
getStrQuestion: (_initial, _reason, _firstRank, ...otherArgs) => {
|
|
1960
1982
|
const [valueAsked] = otherArgs;
|
|
1961
|
-
return `Après combien d'années le nombre de joueurs sera-t-il de $${round(valueAsked,
|
|
1983
|
+
return `Après combien d'années le nombre de joueurs sera-t-il de $${round(valueAsked, 0).frPretty(0)}$ ?`;
|
|
1962
1984
|
},
|
|
1963
1985
|
getAnswerStuff: (initial, reason, firstRank, ...otherArgs) => {
|
|
1964
1986
|
const [valueAsked, rankDecoder] = otherArgs;
|
|
@@ -1970,12 +1992,12 @@ Le nombre de joueurs réguliers de Locket Rig est donc une suite arithmétique d
|
|
|
1970
1992
|
const [valueAsked] = otherArgs;
|
|
1971
1993
|
return `Quelle est la nature de la suite $(u_n)$ ?
|
|
1972
1994
|
|
|
1973
|
-
Utilise le terme général de $(u_n)$ pour déterminer quand $u_p = ${valueAsked.frPretty(
|
|
1995
|
+
Utilise le terme général de $(u_n)$ pour déterminer quand $u_p = ${valueAsked.frPretty(0)}$.`;
|
|
1974
1996
|
},
|
|
1975
1997
|
getCorrectionStuff: (initial, reason, _firstRank) => {
|
|
1976
1998
|
return {
|
|
1977
|
-
str: `Chaque année, le nombre de joueurs diminue de $${-reason.frPretty(
|
|
1978
|
-
Le nombre de joueurs réguliers de Locket Rig est donc une suite arithmétique de premier terme $${initial.frPretty(
|
|
1999
|
+
str: `Chaque année, le nombre de joueurs diminue de $${(-reason).frPretty(0)}$.
|
|
2000
|
+
Le nombre de joueurs réguliers de Locket Rig est donc une suite arithmétique de premier terme $${initial.frPretty(0)}$ et de raison $${reason.frPretty(0)}$.`,
|
|
1979
2001
|
};
|
|
1980
2002
|
},
|
|
1981
2003
|
},
|
|
@@ -1986,12 +2008,12 @@ Le nombre de joueurs réguliers de Locket Rig est donc une suite arithmétique d
|
|
|
1986
2008
|
switch (inequationSymbol.symbol) {
|
|
1987
2009
|
case "<":
|
|
1988
2010
|
case "\\le":
|
|
1989
|
-
return `Quelle sera la dernière année où le nombre de joueurs sera ${isStrict ? "supérieur" : "supérieur ou égal"} à $${valueThreshold.frPretty(
|
|
2011
|
+
return `Quelle sera la dernière année où le nombre de joueurs sera ${isStrict ? "supérieur" : "supérieur ou égal"} à $${valueThreshold.frPretty(0)}$ ?`;
|
|
1990
2012
|
case ">":
|
|
1991
2013
|
case "\\ge":
|
|
1992
2014
|
return `Quelle sera l'année où le nombre de joueurs ${isStrict
|
|
1993
2015
|
? "passera strictement en dessous de"
|
|
1994
|
-
: "égalera ou passera en dessous de"} $${valueThreshold.frPretty(
|
|
2016
|
+
: "égalera ou passera en dessous de"} $${valueThreshold.frPretty(0)}$ ?`;
|
|
1995
2017
|
}
|
|
1996
2018
|
},
|
|
1997
2019
|
getAnswerStuff: (initial, reason, firstRank, ...otherArgs) => {
|
|
@@ -2015,12 +2037,12 @@ Le nombre de joueurs réguliers de Locket Rig est donc une suite arithmétique d
|
|
|
2015
2037
|
})();
|
|
2016
2038
|
return `Quelle est la nature de la suite $u_n$ ?
|
|
2017
2039
|
|
|
2018
|
-
Utilise le terme général de $(u_n)$ pour déterminer ${texP} $p$ tel que $u_p ${inequationSymbol.symbol} ${valueThreshold.frPretty(
|
|
2040
|
+
Utilise le terme général de $(u_n)$ pour déterminer ${texP} $p$ tel que $u_p ${inequationSymbol.symbol} ${valueThreshold.frPretty(0)}$.`;
|
|
2019
2041
|
},
|
|
2020
2042
|
getCorrectionStuff: (initial, reason, _firstRank) => {
|
|
2021
2043
|
return {
|
|
2022
|
-
str: `Chaque année, le nombre de joueurs diminue de $${-reason.frPretty(
|
|
2023
|
-
Le nombre de joueurs réguliers de Locket Rig est donc une suite arithmétique de premier terme $${initial.frPretty(
|
|
2044
|
+
str: `Chaque année, le nombre de joueurs diminue de $${(-reason).frPretty(0)}$.
|
|
2045
|
+
Le nombre de joueurs réguliers de Locket Rig est donc une suite arithmétique de premier terme $${initial.frPretty(0)}$ et de raison $${reason.frPretty(0)}$.`,
|
|
2024
2046
|
};
|
|
2025
2047
|
},
|
|
2026
2048
|
},
|