[PYTHON] Réponse incorrecte lors de l'utilisation de numpy.prod () pour le problème B de ABC169

** Problème B ** https://atcoder.jp/contests/abc169/tasks/abc169_b

J'ai lu ce problème et j'ai pensé que s'il y avait une fonction de la version de multiplication de la somme qui multiplie tout, je pensais que cela pouvait être fait en un seul coup, et quand je l'ai recherché, numpy.prod () était cela, alors quand j'ai essayé de l'utiliser, c'était WA.

WA https://atcoder.jp/contests/abc169/submissions/15692265

Donc, multipliez normalement par l'instruction for et AC. Il semble que la multiplication des grands nombres sera lente, alors j'essaye de casser dès que la fourchette est dépassée.

AC https://atcoder.jp/contests/abc169/submissions/15692483

J'ai enquêté sur numpy.prod.


Le cahier de recherche Jupyter est publié sur Gist

https://gist.github.com/kokuyokugetter/0b3718a7b0bd0adf8f3c0f6f6e483b9e


En comparant les deux dernières cellules, vous pouvez voir que le produit total de 1 à 20 est le même et numpy.prod () est différent de 21.

Il semble que numpy soit implémenté en langage C et fortran, donc la valeur obtenue en divisant la valeur signée maximale d'un entier 64 bits 9223372036854775807 par le produit total de 1 à 20 2432902008176640000 est d'environ 3,8, donc l'écart après 21 est d'environ 3,8. Il n'y a aucun sentiment d'inconfort.

Après cela, même si le produit total de 1 à 20 a été multiplié par 4, la différence s'est produite, il est donc probablement exact que la valeur maximale est 9223372036854775807.

Il semble être plus certain si vous étudiez comment le bit change et devient négatif, mais en termes de pros de la concurrence, le produit total se termine par le sentiment que vous devriez le faire sérieusement simplement en incorporant python.

Recommended Posts

Réponse incorrecte lors de l'utilisation de numpy.prod () pour le problème B de ABC169
3 types de solutions de contournement pour activer le problème de collision lorsque pyenv et anaconda coexistent
Impressions d'utilisation de Flask pendant un mois
[python, multitraitement] Comportement des exceptions lors de l'utilisation du multitraitement
Précautions lors de l'utilisation de l'instruction for dans les pandas