Question

J'ai essayé de calculer toutes les permutations uniques pour un très mot long (anticonstitutionnellement), et bien que je peux calculer les permutations pour les mots, je rencontre des problèmes avec l'arrêt de la production de duplications.

Normalement, je voudrais juste exécuter la méthode sur ma chaîne List<T>.Contains(), mais la liste des permutations devient si grand que je ne peux pas le garder en mémoire. J'ai fait cette erreur plus tôt et a réussi à utiliser tout 8 Go de mémoire dans mon ordinateur. Afin d'éviter que cela se produise à nouveau, j'ai changé le code pour ajouter la permutation calculée à un fichier et le libérer de la mémoire.

Ma question principale est la suivante: Comment puis-je empêcher les permutations en double d'être ajouté à mon dossier sans charger la chose en mémoire Est-il possible de charger de manière sélective, par exemple, les premiers méga-octets? , analyser cela et passer à autre chose jusqu'à ce que le fichier est terminé, ou devrais-je regarder dans une autre direction?

Ce n'est pas devoirs, mes devoirs de mathématiques a donné une situation hypothétique où un ordinateur peut calculer 30 permutations par seconde et m'a fait savoir combien de temps il faudrait pour calculer toutes les permutations. Cela n'a pas été un problème, et je ne ont besoin d'aide, je voulais juste savoir combien de temps il faudrait un ordinateur moderne pour effectuer la même tâche.

Était-ce utile?

La solution

Comment l'utilisation d'un algorithme qui génère toutes les permutations sans doublons ? De cette façon, vous ne devez vérifier pour eux en premier lieu.

Une recherche Google pour « algorithme générer des permutations » se présente des dizaines de références pour vous aider à démarrer. par exemple. Permutation génération Méthodes

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top