2010-08-09 3 views
0

Possible en double:
Programming Logic: Finding the smallest equation to a large number.Existe-t-il un algorithme pour convertir n'importe quel nombre dans l'ensemble Aleph-Null en le plus petit nombre possible?

Je suis à la recherche d'un algorithme qui prendra un nombre arbitraire de l'ensemble Aleph-Null (tous les nombres entiers positifs) (susceptibles d'être absolument énorme) et tenter de le simplifier en un nombre calculable (si le nombre calculable occupe moins d'espace que la valeur entière qu'il essaie de représenter) (en particulier pas virgule flottante). Impliquer tetration/hyperoperators serait optimal.

Est-ce que quelqu'un sait si quelque chose comme ça existe? J'ai beaucoup regardé autour de moi ce matin, mais je n'ai rien trouvé. code C# serait optimale, mais vraiment, il pourrait être dans toutes les langues

Edit: Programming Logic: Finding the smallest equation to a large number: http://mrob.com/pub/ries/index.html semble prometteur, mais je me demande comment il traitera avec un grand nombre, et si elle est capable de mettre en œuvre hyperoperators. Je vais l'essayer.

+6

Donc, vous voulez prendre quelque chose qui peut être arbitrairement grand, et le comprimer jusqu'à une réversiblement taille finie? Cela, par le principe de pidgeonhole, est impossible. (Par ailleurs, écrire des "nombres naturels" ou même des "entiers positifs" au lieu de "l'ensemble Aleph-Null" est moins susceptible d'effrayer les gens.) – Thomas

+0

Que voulez-vous dire par "prendra un nombre arbitraire"? Pensez-vous à une entrée (de l'utilisateur ou du fichier) ou d'une autre manière? –

+4

Duplication de http://stackoverflow.com/questions/3409363. En bref, cela s'appelle la complexité de Kolmogorov d'un nombre et est indécidable. Voir aussi http://stackoverflow.com/questions/1539286/ – sdcvvc

Répondre

1

(tous les nombres entiers positifs) et tenter de simplifier en un nombre calculable (si le nombre calculable prend moins d'espace que la valeur entière qu'il tente de représenter) (en particulier pas à virgule flottante) . Impliquer tetration/hyperoperators serait optimal.

Oui, et encore, non.

D'abord, vous ne pouvez pas prendre réellement entrées de « tous les entiers positifs » dans un ordinateur physique. Au mieux, vous pouvez avoir un nombre entier dont la longueur de représentation est la taille de votre disque dur.

Ainsi, votre entrée est maintenant contraint physiquement à l'ensemble I = [0, MAX], où MAX est une constante physique. Félicitations, cela rend ce problème résoluble.

Vous pouvez considérer ceci d'un point de vue de la théorie de l'information - chaque membre de I est possible et représentable. La compressibilité intervient lorsque vous considérez des représentations. Si chaque représentation est unique, votre objectif est de réduire each i in I à la représentation qui est plus proche de l'entropie du nombre de i lui-même.

Ou, retraité, la compression vient en en supprimant la redondance. Si votre représentation a une redondance, elle peut être compressée.

Peut-être - ce serait la connaissance du domaine - vous pouvez écrire la formule pour générer le nombre d'une manière très compressée. Mais cela dépend d'une certaine régularité dans la façon dont vous obtenez le numéro, il ne devient plus arbitraire.

+0

Eh bien, c'est aussi une enquête théorique de la mienne, car elle est appliquée. Je voudrais trouver un algorithme qui pourrait théoriquement produire une équation pour n'importe quel nombre; mais vrai, il est limité par le matériel. Je ne recherche pas d'algorithmes de compression qui reposent sur la régularité de la compression, je cherche un algorithme qui produira une équation qui pourra ensuite être interprétée pour reproduire le nombre. L'hypothèse est que le nombre n'a aucune régularité. –

+0

@Nich: Pas de régularité -> pas de compression (en moyenne). –

+0

@Nich: La théorie de l'information * s'applique * à la compression, mais elle est plus large. Vous demandez certainement quelque chose qui se situe dans la région de calcul de complexité de Kolmogorov pour les chaînes arbitraires, ce qui n'est pas calculable pour le cas général. Vous devriez passer du temps à étudier l'entropie d'entiers arbitraires dans différentes représentations, ce qui vous donnera des notions raisonnables de représentabilité minimale pour vos nombres. –

Questions connexes