python magie mathématiques

Tour de magie, mathématiques et Python

  • Dernière modification de la publication :26 avril 2022
  • Temps de lecture :7 min de lecture
  • Commentaires de la publication :0 commentaire

Loading

Concevoir un tour de magie à l’aide des mathématiques et de Python n’est pas exceptionnel.

Nous allons nous appuyer sur un tour connu, notamment mis en vidéo par le célèbre youtubeur matheux Yvan Monka, pour en créer un similaire d’une dimension supérieure.

magie mathématiques python

Le tour de magie expliqué par les mathématiques, en utilisant Python

Principe du tour de magie à l’aide des mathématiques (et de Python)

La chaîne d’Yvan Monka se trouve ici : https://www.youtube.com/c/YMONKA

Ce « tour de magie » consiste à choisir un nombre à deux chiffres, et à lui soustraire son chiffre des dizaines et son chiffre des unités.

Par exemple, si l’on choisit 97, on doit faire l’opération:$$97-9-7=81.$$

On présente ensuite une table dans laquelle sont présentés les 100 premiers nombres (de 0 à 99) associés à divers symboles. Le but est de retrouver « par magie » le symbole correspondant au résultat de l’opération précédente.

Bien entendu, cette table est construite de sorte à faire apparaître en face de chaque multiple de 9 le même symbole, et pour cause! Le résultat de l’opération demandée est nécessairement un multiple de 9.

Explication mathématique

Notons \(10d+u\) le nombre à deux chiffres choisi.

L’opération donne alors:$$10d-d-u=9d.$$

Rien de surprenant donc à avoir un multiple de 9 à la fin.

Python pour construire une table

Je n’ai pas envie de m’embêter à construire à la main une table de 100 nombres (j’ai autre chose à faire… comme par exemple écrire cet article prodigieux…).

J’utilise donc Python.

from random import choice

S = [ '¢' , '┘' , 'Ø' , '═' , '→' , '£' , '♥' , '♦' , '♣' , '♠' , '•' , '¤' ]

r = ''
c = 0

for i in range(100):
    if i % 9 != 0:
        r += '{:2} : {}{}'.format(i,choice(S),' '*5)
    else:
        r += '{:2} : ☻{}'.format(i,' '*5)
    
    c += 1
    
    if c == 10:
        r += '\n'
        c = 0
        
print(r)

Bien entendu, les symboles ont été choisis un peu au hasard dans la liste S.

 0 : ☻      1 : ¢      2 : ♥      3 : →      4 : ♥      5 : ┘      6 : •      7 : ┘      8 : →      9 : ☻     
10 : £     11 : ♣     12 : →     13 : ♠     14 : ♦     15 : Ø     16 : ┘     17 : ♣     18 : ☻     19 : ¢     
20 : ♠     21 : ¤     22 : ¤     23 : ♥     24 : Ø     25 : ♥     26 : ¢     27 : ☻     28 : £     29 : •     
30 : ♦     31 : ¤     32 : £     33 : ═     34 : £     35 : •     36 : ☻     37 : ¤     38 : ♠     39 : ♠     
40 : ¤     41 : ♣     42 : ♣     43 : ¤     44 : •     45 : ☻     46 : ♠     47 : ♠     48 : ♠     49 : ♣     
50 : ♠     51 : ═     52 : ¢     53 : £     54 : ☻     55 : ♠     56 : £     57 : ¤     58 : ¤     59 : →     
60 : ♣     61 : ♣     62 : ┘     63 : ☻     64 : ♠     65 : £     66 : •     67 : ♣     68 : ♥     69 : ┘     
70 : Ø     71 : ♥     72 : ☻     73 : ¤     74 : ┘     75 : ═     76 : ♦     77 : Ø     78 : ¢     79 : ¤     
80 : ¤     81 : ☻     82 : ♣     83 : ¢     84 : ═     85 : ¤     86 : ┘     87 : ¤     88 : Ø     89 : Ø     
90 : ☻     91 : ┘     92 : ♣     93 : →     94 : ¢     95 : •     96 : Ø     97 : ♣     98 : ┘     99 : ☻  

Un autre tour de magie à l’aide des mathématiques et de Python

Construction de la nouvelle règle du jeu

Allons plus loin, et créons nous-même un autre tour s’appuyant sur le même principe.

Je souhaite partir d’un nombre à trois chiffres et je veux que le résultats soit un multiple de 11.

Mon nombre à trois chiffres s’écrit \(100c+10d+u\). Que faut-il faire pour obtenir un multiple de 11 ? Tout simplement ajouter \(d\) et soustraire \(c\) et \(u\):$$100c+10d+u+d-c-u=99c+11d=11(9c+d).\)

Encadrement du résultat

Comme \(c\) et \(d\) sont compris entre 0 et 9, \(c\) étant non nul, le résultat final est compris entre 99 et 990 inclus. En effet,$$1 \leq c \leq 9 \Rightarrow 9 \leq 9c \leq 81$$ $$0 \leq d \leq 9 \Rightarrow 9 \leq 9c+d \leq 90$$Ainsi,$$99 \leq 11(9c+d) \leq 990.$$

Construction de la table avec Python

Il suffit de modifier légèrement le code précédent. En vertu de l’encadrement précédent, on a:

from random import choice

S = [ '¢' , '┘' , 'Ø' , '═' , '→' , '£' , '♥' , '♦' , '☻' , '♠' , '•' , '¤' ]

r = ''
c = 0

for i in range(99,991):
    if i % 11 != 0:
        r += '{:3} : {}  |  '.format(i,choice(S))
    else:
        r += '{:3} : ♣  |  '.format(i)
    
    c += 1
    
    if c == 10:
        r += '\n'
        c = 0
        
print(r)
 99 : ♣ | 100 : ☻ | 101 : Ø | 102 : ═ | 103 : ¤ | 104 : ☻ | 105 : ¤ | 106 : £ | 107 : ♠ | 108 : £ | 
109 : ═ | 110 : ♣ | 111 : £ | 112 : ┘ | 113 : ┘ | 114 : ♦ | 115 : £ | 116 : ♦ | 117 : ♠ | 118 : → | 
119 : ☻ | 120 : ┘ | 121 : ♣ | 122 : ¤ | 123 : ♦ | 124 : • | 125 : ☻ | 126 : • | 127 : • | 128 : ☻ | 
129 : £ | 130 : ♦ | 131 : ♦ | 132 : ♣ | 133 : £ | 134 : ♦ | 135 : ♠ | 136 : • | 137 : ¢ | 138 : Ø | 
139 : ♦ | 140 : ♠ | 141 : ┘ | 142 : ♠ | 143 : ♣ | 144 : ♦ | 145 : ¢ | 146 : ♠ | 147 : ☻ | 148 : ¤ | 
149 : → | 150 : ¢ | 151 : ¢ | 152 : → | 153 : ═ | 154 : ♣ | 155 : Ø | 156 : ♦ | 157 : ¢ | 158 : ¢ | 
159 : ¤ | 160 : ☻ | 161 : Ø | 162 : £ | 163 : ┘ | 164 : Ø | 165 : ♣ | 166 : ♦ | 167 : ☻ | 168 : ☻ | 
169 : ┘ | 170 : £ | 171 : ♦ | 172 : ¤ | 173 : ♠ | 174 : ┘ | 175 : • | 176 : ♣ | 177 : ¤ | 178 : ♦ | 
179 : → | 180 : ═ | 181 : ¢ | 182 : ═ | 183 : ♥ | 184 : ♦ | 185 : • | 186 : £ | 187 : ♣ | 188 : ¢ | 
189 : ┘ | 190 : ┘ | 191 : • | 192 : ¤ | 193 : ♦ | 194 : ♠ | 195 : • | 196 : Ø | 197 : ┘ | 198 : ♣ | 
199 : ♥ | 200 : Ø | 201 : ¤ | 202 : ♦ | 203 : ♥ | 204 : ☻ | 205 : ♠ | 206 : ┘ | 207 : ═ | 208 : ♦ | 
209 : ♣ | 210 : ¢ | 211 : £ | 212 : ♦ | 213 : ♥ | 214 : • | 215 : ♥ | 216 : ¤ | 217 : £ | 218 : ¢ | 
219 : • | 220 : ♣ | 221 : Ø | 222 : Ø | 223 : ☻ | 224 : Ø | 225 : ♠ | 226 : Ø | 227 : • | 228 : ☻ | 
229 : ♠ | 230 : • | 231 : ♣ | 232 : ¤ | 233 : Ø | 234 : ┘ | 235 : ═ | 236 : £ | 237 : Ø | 238 : ♦ | 
239 : ♠ | 240 : → | 241 : Ø | 242 : ♣ | 243 : ☻ | 244 : ♦ | 245 : ♥ | 246 : Ø | 247 : • | 248 : → | 
249 : ┘ | 250 : ¤ | 251 : ═ | 252 : ♦ | 253 : ♣ | 254 : £ | 255 : ┘ | 256 : → | 257 : ┘ | 258 : ¤ | 
259 : ♠ | 260 : → | 261 : ¢ | 262 : ♥ | 263 : • | 264 : ♣ | 265 : ¤ | 266 : ¤ | 267 : → | 268 : ¢ | 
269 : → | 270 : ♠ | 271 : ═ | 272 : ♦ | 273 : • | 274 : ┘ | 275 : ♣ | 276 : ♦ | 277 : ┘ | 278 : ┘ | 
279 : ¢ | 280 : ¢ | 281 : ☻ | 282 : ♦ | 283 : ¢ | 284 : ♠ | 285 : ♠ | 286 : ♣ | 287 : ♥ | 288 : • | 
289 : ☻ | 290 : ♥ | 291 : ☻ | 292 : ¤ | 293 : → | 294 : ♥ | 295 : ♠ | 296 : ┘ | 297 : ♣ | 298 : ┘ | 
299 : ♠ | 300 : ♥ | 301 : ♠ | 302 : ♦ | 303 : • | 304 : ¢ | 305 : ♠ | 306 : ¢ | 307 : ♠ | 308 : ♣ | 
309 : ┘ | 310 : ♦ | 311 : ☻ | 312 : ¢ | 313 : ☻ | 314 : Ø | 315 : ¢ | 316 : ♦ | 317 : ☻ | 318 : ☻ | 
319 : ♣ | 320 : ♦ | 321 : ¤ | 322 : ♦ | 323 : ♥ | 324 : ¤ | 325 : ♠ | 326 : ♠ | 327 : ♠ | 328 : £ | 
329 : ¢ | 330 : ♣ | 331 : ═ | 332 : ¤ | 333 : ♥ | 334 : £ | 335 : ═ | 336 : ♠ | 337 : • | 338 : ┘ | 
339 : ♦ | 340 : → | 341 : ♣ | 342 : ♠ | 343 : ☻ | 344 : ┘ | 345 : ☻ | 346 : ♦ | 347 : • | 348 : Ø | 
349 : • | 350 : ┘ | 351 : ♦ | 352 : ♣ | 353 : £ | 354 : → | 355 : ♠ | 356 : ♠ | 357 : ═ | 358 : ┘ | 
359 : ♦ | 360 : ¢ | 361 : Ø | 362 : ☻ | 363 : ♣ | 364 : £ | 365 : • | 366 : £ | 367 : £ | 368 : ¤ | 
369 : ♦ | 370 : → | 371 : ¤ | 372 : ═ | 373 : • | 374 : ♣ | 375 : ♠ | 376 : ¤ | 377 : ¢ | 378 : ☻ | 
379 : Ø | 380 : ¢ | 381 : ═ | 382 : Ø | 383 : Ø | 384 : ♥ | 385 : ♣ | 386 : ♥ | 387 : ¤ | 388 : Ø | 
389 : ¤ | 390 : • | 391 : ═ | 392 : ♠ | 393 : ♠ | 394 : ☻ | 395 : ♦ | 396 : ♣ | 397 : ¤ | 398 : ☻ | 
399 : ♠ | 400 : → | 401 : ♠ | 402 : ☻ | 403 : ☻ | 404 : £ | 405 : ┘ | 406 : £ | 407 : ♣ | 408 : ☻ | 
409 : ¤ | 410 : ☻ | 411 : ═ | 412 : ♠ | 413 : • | 414 : ═ | 415 : ☻ | 416 : ☻ | 417 : • | 418 : ♣ | 
419 : ♥ | 420 : ┘ | 421 : ☻ | 422 : ═ | 423 : ¤ | 424 : • | 425 : Ø | 426 : ¢ | 427 : • | 428 : Ø | 
429 : ♣ | 430 : • | 431 : → | 432 : ♠ | 433 : ¤ | 434 : • | 435 : • | 436 : ¤ | 437 : ═ | 438 : • | 
439 : £ | 440 : ♣ | 441 : ¤ | 442 : → | 443 : £ | 444 : → | 445 : ═ | 446 : → | 447 : • | 448 : ¢ | 
449 : ═ | 450 : • | 451 : ♣ | 452 : Ø | 453 : Ø | 454 : ♥ | 455 : ☻ | 456 : ¤ | 457 : ♦ | 458 : ¤ | 
459 : ¢ | 460 : ♦ | 461 : ♦ | 462 : ♣ | 463 : • | 464 : ┘ | 465 : Ø | 466 : ¤ | 467 : ♠ | 468 : ♠ | 
469 : → | 470 : Ø | 471 : ♠ | 472 : ♦ | 473 : ♣ | 474 : ¤ | 475 : ¢ | 476 : ♦ | 477 : ¢ | 478 : £ | 
479 : ¤ | 480 : ♠ | 481 : ♦ | 482 : ┘ | 483 : ═ | 484 : ♣ | 485 : ¢ | 486 : • | 487 : ♥ | 488 : ☻ | 
489 : ┘ | 490 : ♠ | 491 : £ | 492 : ♦ | 493 : ☻ | 494 : • | 495 : ♣ | 496 : • | 497 : ┘ | 498 : Ø | 
499 : → | 500 : • | 501 : ¢ | 502 : • | 503 : ¤ | 504 : ¤ | 505 : ♥ | 506 : ♣ | 507 : ┘ | 508 : ═ | 
509 : ♠ | 510 : ¤ | 511 : ¤ | 512 : ═ | 513 : ♥ | 514 : ♥ | 515 : ═ | 516 : £ | 517 : ♣ | 518 : ═ | 
519 : Ø | 520 : Ø | 521 : ♠ | 522 : ♥ | 523 : ♥ | 524 : • | 525 : ♥ | 526 : £ | 527 : £ | 528 : ♣ | 
529 : ♦ | 530 : ┘ | 531 : ♥ | 532 : ═ | 533 : → | 534 : ¤ | 535 : ☻ | 536 : ¤ | 537 : ┘ | 538 : ¢ | 
539 : ♣ | 540 : ♥ | 541 : Ø | 542 : ¢ | 543 : ♦ | 544 : ┘ | 545 : Ø | 546 : → | 547 : → | 548 : • | 
549 : ☻ | 550 : ♣ | 551 : ☻ | 552 : ═ | 553 : Ø | 554 : ¤ | 555 : ♦ | 556 : Ø | 557 : • | 558 : ☻ | 
559 : Ø | 560 : ♥ | 561 : ♣ | 562 : ☻ | 563 : Ø | 564 : ♦ | 565 : £ | 566 : ♠ | 567 : ♦ | 568 : ┘ | 
569 : ¢ | 570 : → | 571 : ═ | 572 : ♣ | 573 : ┘ | 574 : ¢ | 575 : ¤ | 576 : ☻ | 577 : £ | 578 : £ | 
579 : ┘ | 580 : • | 581 : ¤ | 582 : ¤ | 583 : ♣ | 584 : ¤ | 585 : ♥ | 586 : ♦ | 587 : ☻ | 588 : £ | 
589 : ☻ | 590 : ¢ | 591 : ♠ | 592 : ☻ | 593 : ♠ | 594 : ♣ | 595 : Ø | 596 : ┘ | 597 : ¢ | 598 : ♠ | 
599 : ☻ | 600 : ♦ | 601 : ┘ | 602 : ♦ | 603 : → | 604 : ☻ | 605 : ♣ | 606 : £ | 607 : ♥ | 608 : Ø | 
609 : ♠ | 610 : Ø | 611 : ♥ | 612 : ♠ | 613 : ♦ | 614 : Ø | 615 : ═ | 616 : ♣ | 617 : ┘ | 618 : → | 
619 : ¢ | 620 : ♦ | 621 : ¤ | 622 : ♠ | 623 : ¢ | 624 : → | 625 : ♠ | 626 : ═ | 627 : ♣ | 628 : ¤ | 
629 : ┘ | 630 : ┘ | 631 : ♥ | 632 : ♦ | 633 : ☻ | 634 : ♦ | 635 : ═ | 636 : ¢ | 637 : Ø | 638 : ♣ | 
639 : ♥ | 640 : ═ | 641 : ═ | 642 : £ | 643 : ¢ | 644 : ¢ | 645 : ☻ | 646 : • | 647 : ¢ | 648 : ¤ | 
649 : ♣ | 650 : → | 651 : ═ | 652 : ♥ | 653 : • | 654 : ♥ | 655 : ♦ | 656 : ♥ | 657 : ═ | 658 : ═ | 
659 : ┘ | 660 : ♣ | 661 : ☻ | 662 : ┘ | 663 : ♠ | 664 : ♦ | 665 : ═ | 666 : ¤ | 667 : • | 668 : ♠ | 
669 : • | 670 : → | 671 : ♣ | 672 : ☻ | 673 : ♠ | 674 : ♠ | 675 : ♦ | 676 : ┘ | 677 : ¤ | 678 : ☻ | 
679 : ♠ | 680 : ☻ | 681 : ┘ | 682 : ♣ | 683 : ═ | 684 : ☻ | 685 : ♥ | 686 : • | 687 : • | 688 : ═ | 
689 : ☻ | 690 : ☻ | 691 : ¢ | 692 : ¢ | 693 : ♣ | 694 : £ | 695 : ═ | 696 : £ | 697 : ┘ | 698 : ♥ | 
699 : Ø | 700 : ☻ | 701 : ═ | 702 : → | 703 : ¤ | 704 : ♣ | 705 : ¢ | 706 : • | 707 : ♥ | 708 : ═ | 
709 : ═ | 710 : ═ | 711 : ═ | 712 : ¤ | 713 : ═ | 714 : ♦ | 715 : ♣ | 716 : • | 717 : ¤ | 718 : → | 
719 : ♥ | 720 : ♠ | 721 : ♦ | 722 : ¢ | 723 : Ø | 724 : Ø | 725 : Ø | 726 : ♣ | 727 : ┘ | 728 : ♦ | 
729 : ¤ | 730 : ¢ | 731 : ┘ | 732 : ♠ | 733 : ☻ | 734 : ═ | 735 : ¢ | 736 : ¤ | 737 : ♣ | 738 : £ | 
739 : → | 740 : ¢ | 741 : • | 742 : • | 743 : £ | 744 : • | 745 : • | 746 : ═ | 747 : ♥ | 748 : ♣ | 
749 : ¢ | 750 : ┘ | 751 : ♠ | 752 : ═ | 753 : ♥ | 754 : ¤ | 755 : Ø | 756 : ¢ | 757 : ¢ | 758 : → | 
759 : ♣ | 760 : ¢ | 761 : → | 762 : ¢ | 763 : ¢ | 764 : ♦ | 765 : • | 766 : ♠ | 767 : → | 768 : → | 
769 : ♥ | 770 : ♣ | 771 : Ø | 772 : £ | 773 : Ø | 774 : £ | 775 : ¢ | 776 : → | 777 : ♠ | 778 : ¢ | 
779 : ♥ | 780 : Ø | 781 : ♣ | 782 : £ | 783 : ☻ | 784 : ¢ | 785 : ═ | 786 : ¤ | 787 : ¤ | 788 : ═ | 
789 : ♥ | 790 : ♦ | 791 : • | 792 : ♣ | 793 : ¢ | 794 : ¤ | 795 : Ø | 796 : → | 797 : £ | 798 : ¤ | 
799 : ═ | 800 : ¢ | 801 : ¤ | 802 : £ | 803 : ♣ | 804 : ¢ | 805 : ♥ | 806 : ♠ | 807 : • | 808 : • | 
809 : • | 810 : ═ | 811 : → | 812 : ☻ | 813 : • | 814 : ♣ | 815 : ¢ | 816 : → | 817 : → | 818 : £ | 
819 : ¤ | 820 : £ | 821 : ┘ | 822 : • | 823 : ¢ | 824 : £ | 825 : ♣ | 826 : ¤ | 827 : ¢ | 828 : • | 
829 : ¤ | 830 : ═ | 831 : Ø | 832 : → | 833 : ¢ | 834 : ♠ | 835 : ♦ | 836 : ♣ | 837 : ¢ | 838 : ¢ | 
839 : → | 840 : ¤ | 841 : ♥ | 842 : ♥ | 843 : ♦ | 844 : ┘ | 845 : Ø | 846 : ┘ | 847 : ♣ | 848 : £ | 
849 : ♠ | 850 : Ø | 851 : ¤ | 852 : £ | 853 : ♦ | 854 : ♦ | 855 : ♦ | 856 : ┘ | 857 : ♦ | 858 : ♣ | 
859 : ♥ | 860 : ☻ | 861 : ♠ | 862 : ♠ | 863 : Ø | 864 : • | 865 : ♥ | 866 : ♠ | 867 : ¤ | 868 : ♠ | 
869 : ♣ | 870 : ┘ | 871 : • | 872 : ┘ | 873 : ═ | 874 : ☻ | 875 : ☻ | 876 : • | 877 : ♥ | 878 : ¢ | 
879 : £ | 880 : ♣ | 881 : ┘ | 882 : ♥ | 883 : ☻ | 884 : ♠ | 885 : ¢ | 886 : • | 887 : → | 888 : £ | 
889 : • | 890 : ♠ | 891 : ♣ | 892 : ¤ | 893 : ┘ | 894 : ¤ | 895 : → | 896 : ♦ | 897 : ¢ | 898 : ☻ | 
899 : ♠ | 900 : ┘ | 901 : ┘ | 902 : ♣ | 903 : → | 904 : ♠ | 905 : ♠ | 906 : ♥ | 907 : ═ | 908 : ☻ | 
909 : ♠ | 910 : ☻ | 911 : ♠ | 912 : ♥ | 913 : ♣ | 914 : ═ | 915 : ┘ | 916 : £ | 917 : → | 918 : → | 
919 : £ | 920 : ☻ | 921 : Ø | 922 : ┘ | 923 : ¤ | 924 : ♣ | 925 : ☻ | 926 : ═ | 927 : ♥ | 928 : ¤ | 
929 : ═ | 930 : ♥ | 931 : • | 932 : ♥ | 933 : ┘ | 934 : ♥ | 935 : ♣ | 936 : ═ | 937 : ♦ | 938 : ♦ | 
939 : ¢ | 940 : ♥ | 941 : ¢ | 942 : → | 943 : ♠ | 944 : ═ | 945 : ♠ | 946 : ♣ | 947 : → | 948 : ═ | 
949 : ☻ | 950 : • | 951 : ♥ | 952 : Ø | 953 : ☻ | 954 : ♥ | 955 : → | 956 : ♦ | 957 : ♣ | 958 : ☻ | 
959 : ♠ | 960 : ═ | 961 : ♠ | 962 : ☻ | 963 : ═ | 964 : ¢ | 965 : • | 966 : ┘ | 967 : ═ | 968 : ♣ | 
969 : ♠ | 970 : ♥ | 971 : £ | 972 : ☻ | 973 : £ | 974 : ☻ | 975 : • | 976 : ♠ | 977 : ¤ | 978 : Ø | 
979 : ♣ | 980 : ♦ | 981 : ♦ | 982 : Ø | 983 : ♦ | 984 : ☻ | 985 : ♦ | 986 : ♥ | 987 : ♥ | 988 : ═ | 
989 : ♠ | 990 : ♣ | 

5 1 vote
Évaluation de l'article
S’abonner
Notification pour
guest
0 Commentaires
Commentaires en ligne
Afficher tous les commentaires