[Archives] Mathématiques pures, physique, chimie, etc. : problèmes d'entraînement cérébral sans rapport avec le commerce. - page 452

 
Mathemat:

Dans l'ensemble, vous devez supprimer les restrictions sur le montant. Le raisonnement reste essentiellement le même, mais en plus grand nombre.

A en juger par le fait que dans la citation, l'homme avait besoin de Cray 1, son algorithme était moins optimisé que le vôtre :)

1. Vous ne pouvez pas supprimer la limite du montant - elle fait partie du problème. Des sommes différentes donnent des résultats différents.

2. Sérieusement, j'ai fait des efforts. :)

Plusieurs caractéristiques rendent le script rapide. La première, et probablement la plus "rapide", est la table de décomposition des multiplicateurs, qui est construite UNE fois au début.

Il permet de refuser de construire des décompositions dans chaque cycle de vérification des nombres - il suffit de regarder dans le tableau.

MAIS. ( !) :(

Maintenant, nous sommes coincés avec sa taille.

Cependant, si nous ne construisons pas le tableau, mais le décomposons simplement en multiplicateurs à chaque fois, alors nous ne pouvons pas nous passer de Cray - il faudra des mois pour résoudre le problème.

Resumo : il y a autre chose que nous devons optimiser. :)

Je pense.

 
MetaDriver:

Penser.

Rien de radical n'a encore été pensé. Mais j'ai réussi à passer à 5000

2011.01.15 21:08:46 MetaSage (EURUSD,M1) //+---- Max = 5000 -------------------+
2011.01.15 21:08:29 MetaSage (EURUSD,M1) S=373 ; P=19776 ; a=64 ; b=309
2011.01.15 21:08:29 MetaSage (EURUSD,M1) S=343 ; P=9952 ; a=32 ; b=311
2011.01.1515 21:08:29 PM MetaSage (EURUSD,M1) S=233 ; P=916 ; a=4 ; b=229
2011.01.15 21:08:29 PM MetaSage (EURUSD,M1) S=163 ; P=4192 ; a=32 ; b=131
2011.01.15 21:08:29 MetaSage (EURUSD,M1) S=149 ; P=5494 ; a=67 ; b=82
2011.01.15 21:08:29 MetaSage (EURUSD,M1) S=137 ; P=4672 ; a=64 ; b=73
2011.01.15 21:08:29 MetaSage (EURUSD,M1) S=127 ; P=1776 ; a=16 ; b=111
2011.01.15 21:08:29 MetaSage (EURUSD,M1) S=89 ; P=1168 ; a=16 ; b=73
2011.01.15 21:08:29 MetaSage (EURUSD,M1) S=65 ; P=244 ; a=4 ; b=61
2011.01.15 21:08:29 MetaSage (EURUSD,M1) S=17 ; P=52 ; a=4 ; b=13
2011.01.01.15 21:08:29 MetaSage (EURUSD,M1) //+---- Max = 5000 -------------------+
2011.01.15 21:08:29 MetaSage (EURUSD,M1) //============== START ========================
2011.01.1515 21:07:58 MetaSage (EURUSD,M1) à 5000 SMax*(SMax/6-1) = 4160000
2011.01.15 21:07:40 MetaSage (EURUSD,M1) //+---- Montant maximal = 4700 -------------------+
2011.01.15 21:07:24 MetaSage (EURUSD,M1) S=373 ; P=19776 ; a=64 ; b=309
2011.01.15 21:07:2415 21:07:24 MetaSage (EURUSD,M1) S=343 ; P=9952 ; a=32 ; b=311
2011.01.15 21:07:23 MetaSage (EURUSD,M1) S=233 ; P=916 ; a=4 ; b=229
2011.01.15 21:07:23 MetaSage (EURUSD,M1) S=163 ; P=4192 ; a=32 ; b=131
2011.01.15 21:07:23 MetaSage (EURUSD,M1) S=137 ; P=4672 ; a=64 ; b=73
2011.01.15 21:07:23 MetaSage (EURUSD,M1) S=127 ; P=1776 ; a=16 ; b=111
2011.01.15 21:07:23 MetaSage (EURUSD,M1) S=89 ; P=1168 ; a=16 ; b=73
2011.01.01.15 21:07:23 MetaSage (EURUSD,M1) S=65 ; P=244 ; a=4 ; b=61
2011.01.15 21:07:23 MetaSage (EURUSD,M1) S=17 ; P=52 ; a=4 ; b=13
2011.01.15 21:07:23 MetaSage (EURUSD,M1) //+---- Max = 4700 -------------------+
2011.01.15 21:07:23 MetaSage (EURUSD,M1) //============== START ========================
2011.01.15 21:06:56 MetaSage (EURUSD,M1) à 4700 SMax*(SMax/6-1) = 3675400

.

Les principales idées d'optimisation portent sur la réduction de la taille du tableau en ne stockant que le premier multiplicateur dans les cellules et en obtenant le suivant dynamiquement par référence dans le même tableau.

Il s'agit toutefois d'un gain de temps qui sera bien sûr moindre que dans le cas de la construction d'un certain nombre de facteurs à chaque fois à partir de zéro, mais tout de même considérablement plus important que maintenant.

Je réfléchis encore.

 

Nah. Je ne vais pas faire un échange espace-temps. Même au taux actuel de 6900, il compte pendant environ 3 minutes. // J'ai menti, environ 2 :)

En cas de référence au tableau, le nombre de calculs augmentera de façon quadratique.

C'est vrai que si l'on calcule à chaque fois, l'augmentation est exponentielle, mais il y a de quoi être fier, c'est quand même un ralentissement.


2011.01.15 21:33:44 MetaSage (EURUSD,M1) //+---- Max = 6900 -------------------+
2011.01.15 21:33:04 MetaSage (EURUSD,M1) S=373 ; P=19776 ; a=64 ; b=309
2011.01.15 21:33:04 MetaSage (EURUSD,M1) S=343 ; P=9952 ; a=32 ; b=311
15 21:33:04 MetaSage (EURUSD,M1) S=233 ; P=916 ; a=4 ; b=229
2011.01.15 21:33:04 MetaSage (EURUSD,M1) S=217 ; P=11392 ; a=89 ; b=128
2011.01.15 21:33:04 MetaSage (EURUSD,M1) S=163 ; P=4192 ; a=32 ; b=131
2011.01.15 21:33:04 MetaSage (EURUSD,M1) S=137 ; P=4672 ; a=64 ; b=73
2011.01.15 21:33:04 MetaSage (EURUSD,M1) S=127 ; P=1776 ; a=16 ; b=111
2011.01.15 21:33:04 MetaSage (EURUSD,M1) S=89 ; P=1168 ; a=16 ; b=73
2011.01.01.15 21:33:04 MetaSage (EURUSD,M1) S=65 ; P=244 ; a=4 ; b=61
2011.01.15 21:33:04 MetaSage (EURUSD,M1) S=17 ; P=52 ; a=4 ; b=13
2011.01.15 21:31:4815 21:31:48 MetaSage (EURUSD,M1) Avec SMax=6900 PMax = SMax*(uint)(SMax/6-1) = 7928100
2011.01.15 21:31:46 MetaSage (EURUSD,M1) //+---- Max = 6900 -------------------+
2011.01.15 21:31:46 MetaSage (EURUSD,M1) //============== START ========================


À 7000 - Erreur 4004 : "ArrayResize() : La quantité de mémoire demandée dépasse deux gigas. Tu dois être plus modeste."

Si quelqu'un ici a 64x bit + Win64 + MT5 64x + 8 gigs de mémoire, vous pouvez obtenir jusqu'à 10 mille, alors c'est une déception de toute façon.

Je suggère que nous nous arrêtions là. En fait, les premiers sages sont dans le cul depuis longtemps maintenant.

 

Oui, tu peux arrêter, c'est sûr. Vous avez déjà créé un miracle qui a devancé Cray.

Et pourtant, le schéma des nombres demeure, à savoir que l'un d'entre eux est un degré de deux. Mais il y a des cas douteux - quand un nombre impair n'est pas premier :

S=127 ; P=1776 ; a=16 ; b=111

S=373 ; P=19776 ; a=64 ; b=309.

 
Mathemat:

1. Oui, vous pouvez arrêter, c'est sûr. Vous avez déjà créé un miracle sur lequel Cray a sauté.

Et pourtant, le schéma des nombres reste le même, c'est-à-dire que l'un d'entre eux est un degré de deux. Mais il y a des cas douteux - quand un nombre impair n'est pas premier :

S=127 ; P=1776 ; a=16 ; b=111

S=373 ; P=19776 ; a=64 ; b=309.

1. Je suis d'accord. :)

2. Vous suggérez que vous vérifiez sur un ordinateur ? On pourrait, mais ce serait une longue impression. Je vais trouver une solution.

 
Je vais finaliser et affiner ma fonction de vérification de la somme pour une contrainte arbitraire. On a l'impression que les solutions seront de moins en moins fréquentes au fur et à mesure que la contrainte augmente.
 
Mathemat:
Je vais terminer et affiner ma fonction de vérification de la somme pour une contrainte arbitraire. On a l'impression que plus la contrainte augmente, plus les solutions se font rares.

Ce n'est pas un fait :

2011.01.15 22:52:56 MetaSage (EURUSD,M1) //+---- Montant maximal = 8000 -------------------+
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=373 ; P=19776 ; a=64 ; b=309
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=343 ; P=9952 ; a=32 ; b=311
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=247 ; P=1912 ; a=8 ; b=239
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=233 ; P=916 ; a=4 ; b=229
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=217 ; P=11392 ; a=89 ; b=128
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=185 ; P=724 ; a=4 ; b=181
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=179 ; P=2608 ; a=16 ; b=163
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=163 ; P=4192 ; a=32 ; b=131
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=137 ; P=4672 ; a=64 ; b=73
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=127 ; P=1776 ; a=16 ; b=111
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=89 ; P=1168 ; a=16 ; b=73
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=65 ; P=244 ; a=4 ; b=61
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=17 ; P=52 ; a=4 ; b=13
2011.01.15 22:50:34 MetaSage (EURUSD,M1) Avec SMax=8000 PMax = SMax*(SMax/8-1) = 7992000
2011.01.15 22:50:33 MetaSage (EURUSD,M1) //+---- Max = 8000 -------------------+
2011.01.15 22:50:33 MetaSage (EURUSD,M1) //============== START ========================

Il existe déjà treize solutions.

 
MetaDriver: Déjà treize solutions.

Ce n'est pas un fait. Ce sont les candidats à la décision. Vous l'avez accepté vous-même. Et les "solutions" avec un impair composite me mettent très mal à l'aise - bien que je ne puisse pas étayer ce soupçon.

Mais la tendance est encourageante. Vous vous rapprochez des dix mille. Les sages sont sages, et nous sommes des programmeurs.

 
Mathemat:

1. Ce n'est pas un fait. Ce sont les candidats à la décision. Vous l'avez accepté vous-même. Et les "solutions" avec un impair composite me mettent très mal à l'aise - bien que je ne puisse pas étayer ce soupçon.

2. Mais la tendance est encourageante. Tu te rapproches des 10 000 dollars.

1. Je n'ai pas réfléchi. Depuis, j'ai beaucoup plus confiance en mon scénario. :)

Car en essayant de faire un "vérificateur", je me suis rendu compte qu'il n'y a rien à vérifier - tout fonctionne correctement.

Cependant, vous pouvez toujours fabriquer une imprimante - par exemple, pour salir le forum Mechmaty avec des butins... :))))

// Et en même temps pour vous calmer. ;)

Je dois juste trouver quoi imprimer.

2. C'est comme ça. Faites-le signer.


2011.01.15 23:18:16 MetaSage (EURUSD,M1) //+---- montant maximal = 10000 -------------------+
2011.01.15 23:16:31 MetaSage (EURUSD,M1) S=373 ; P=19776 ; a=64 ; b=309
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=343 ; P=9952 ; a=32 ; b=311
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=247 ; P=1912 ; a=8 ; b=239
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=233 ; P=916 ; a=4 ; b=229
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=217 ; P=11392 ; a=89 ; b=128
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=191 ; P=8128 ; a=64 ; b=127
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=185 ; P=724 ; a=4 ; b=181
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=179 ; P=2608 ; a=16 ; b=163
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=163 ; P=4192 ; a=32 ; b=131
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=137 ; P=4672 ; a=64 ; b=73
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=127 ; P=1776 ; a=16 ; b=111
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=89 ; P=1168 ; a=16 ; b=73
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=65 ; P=244 ; a=4 ; b=61
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=17 ; P=52 ; a=4 ; b=13
2011.01.15 23:15:36 MetaSage (EURUSD,M1) Avec SMax=10000 PMax = SMax*(SMax/16-1) = 6240000
2011.01.15 23:15:34 MetaSage (EURUSD,M1) //+---- Max = 10000 -------------------+
2011.01.15 23:15:34 MetaSage (EURUSD,M1) //============== START ========================


Je joins la version gagnante du script.

Dossiers :
 

Notez que dans mon dernier élément de preuve pour les montants inférieurs à 100, il ne restait que 4 montants : 17, 29, 41, 53. Tous sont premiers (probablement par accident), et, de plus, ils sont représentés comme 2^n+premier d'une seule manière (ce qui n'est pas un accident). C'est ce qui me stresse quand je regarde vos variantes de solutions.

Et que gardez-vous dans votre grande table ? On dirait qu'il y a beaucoup de choses inutiles ici. Où les sages ont-ils 5 millions de chiffres en tête ?

J'ai trouvé les 1 000 premiers simples sur internet - jusqu'à environ 8 000.