Dans cette tâche, vous êtes autorisé à créer un programme utile pour faire tout ce que vous pouvez écrire à moins de 100 caractères. Vous êtes autorisé à utiliser moins de caractères, mais pas plus.
Des règles, juste pour se protéger des failles standard qui ne sont plus drôles:
Votre programme ne peut pas accéder à Internet, sauf si c'est vraiment le cas. Par exemple, le programme qui affiche la question la plus votée sur ce site Web peut utiliser Internet pour vérifier cette question. Cependant, il n'est pas autorisé à naviguer sur Internet afin de trouver sa véritable source et de l'exécuter.
Votre programme ne peut pas être un interprète pour la langue dans laquelle il a été écrit. Cependant, un interprète Brainfuck dans une langue autre que Brainfuck conviendrait.
Votre programme ne peut pas exécuter des programmes externes qui font exactement ce que fait votre programme. Par exemple, vous ne pouvez pas exécuter
vim
et prétendre que votre programme estvim
implémentation.Votre programme ne peut pas être dangereux pour l'ordinateur sur lequel il est exécuté et pour d'autres ordinateurs. Vous n'êtes pas autorisé à écrire un programme comme
rmdir /
(l'exemple ici ne fonctionne pas intentionnellement, ne le corrigez pas) et prétendez que c'est un programme utile pour supprimer tous les fichiers sur l'ordinateur.Votre programme peut être aussi lent que vous le souhaitez et utiliser autant de ressources que vous le souhaitez, tant que vous pouvez prouver qu'il fait ce qu'il voulait faire.
Vous n'êtes pas autorisé à créer un langage spécifiquement pour cette tâche. Cependant, vous êtes autorisé à faire interprète pour votre langue inventée dans un autre langage de programmation.
la source
Réponses:
C - 47 octets
Le programme suivant génère tous les documents jamais écrits dans l'histoire de l'humanité, ainsi que tous les documents qui seront jamais écrits et des tonnes de textes intéressants qu'aucun humain ne trouvera jamais (avec un "petit" morceau de déchets entre les deux). Donnez-lui juste un peu de temps. De plus, chaque fois que vous l'exécutez, il affichera d'abord différents textes! Si ce n'est pas utile! (Et tout cela dans la moitié de la limite de caractères!)
Si vous ne vous souciez pas de produire quelque chose d'autre à chaque fois, vous n'avez besoin que de 41 octets !
Pas tout à fait conforme à C99, mais il compile facilement avec
gcc.exe (GCC) 4.7.0 20111220
.Les règles indiquent
Aucun problème.
Certaines choses, ce programme affichera:
Comme le note Dennis, le caractère aléatoire de l'algorithme pourrait être quelque peu amélioré (dans la limite des caractères), en utilisant à la
rand()^rand()>>16
place derand()
.la source
rand()
est uniquement pseudo-aléatoire - il ne peut produire aucun texte utile avant de boucler.x
vous voyez la sortie sous forme de tableaux[i] == (x[i - 3] + x[i - 31] + c[i]) % 256
, oùc[i]
0 est avec une probabilité de 0,75 et 1 avec une probabilité de 0,25. Cela signifie à peu près qu'il ne peut générer aucune des choses que vous avez mentionnées.rand()^rand()>>16
place de plainrand()
. Si vous cherchez des moyens d'économiser sur les octets, supprimezint
et%256
.unsigned char
lorsqu'elle est écrite.BBC BASIC, 84 caractères
Trace les solutions des équations différentielles du premier et du deuxième ordre.
Prend comme entrée utilisateur:
Inspiré par un logiciel de résolution d'équations différentielles appelé Polymath que j'ai utilisé lors de mes études d'ingénieur chimiste. Nous saisirions différentes équations pour les réactifs et les produits et verrions comment l'ensemble du système réactionnel a changé au fil du temps. Un logiciel très simple (pas beaucoup plus complexe que cela) mais beaucoup plus pratique à cet effet qu'Excel. Malheureusement, je ne peux pas faire un clone complet de Polymath en 100 caractères.
la source
Mathematica 76
Ce programme construit une applet qui affiche des informations concernant diverses propriétés pour l'un des 240 pays. Il s'ouvre sur des informations sur la population adulte d'Afghanistan. L'utilisateur peut modifier les paramètres de pays et de propriété via des listes déroulantes.
Mathematica interagit sans problème avec WolframAlpha.
Pour cette raison, je pense que la soumission répond à l'exigence n ° 1 du défi: "Votre programme ne peut pas accéder à Internet, à moins qu'il ne le doive vraiment ".
Cette applet plutôt modeste utilise simplement les fonctionnalités existantes dans le langage Mathematica. Une courte vidéo fournit des informations supplémentaires sur l'applet.
Vous trouverez ci-dessous une liste des 20 premières propriétés (sur 223) liées aux pays. Avec une programmation supplémentaire, on peut obtenir des informations supplémentaires sur les pays et analyser ces informations dans Mathematica.
la source
bash, 100 octets
Ce script imprime un flux d'octets cryptographiquement sécurisé. Il prend un argument facultatif spécifiant le nombre d'octets qu'il doit imprimer. Par défaut, la sortie sera infinie.
Utile dans les cas où la lecture
/dev/urandom
est tout simplement trop lente.Référence
Ce script génère jusqu'à 1,5 Gio par seconde sur mon i7-3770.
En revanche, la lecture de
/dev/urandom
parvient à générer à peine 1 Gio par minute .Comment ça fonctionne
head -c${1--1} /dev/zero
renvoie la quantité spécifiée de zéro octet. Si aucun montant n'est spécifié,${1--1}
est égal à -1 et la tête génère une quantité infinie.openssl enc -aes-128-ctr -pass file:/dev/random
utilise AES-128 en mode compteur pour chiffrer les zéro octets, en lisant le mot de passe/dev/random
.tail -c+17
supprime l'en-tête de 16 octets de la sortie.la source
Javascript
Résoudre n'importe quelle équation (enfin, pas toutes, mais devrait fonctionner avec des fonctions communes ...)
Sans ES6 (105 caractères):
Donnez simplement le côté gauche de l'équation en supposant que le côté droit est nul.
Exemple :
r("x*x-9")
Retour3
r("Math.sin(x)-1")
renvoie1.5707963394347828
(pi / 2)r("Math.pow(2,x)-512")
Retour9
Attention: peut diverger sur certaines fonctions (ou s'il n'y a pas de solution) et figer l'onglet de votre navigateur, ou retourner NaN.
la source
C - 99 caractères
Ce programme permet le cryptage et le décryptage de tout type de données.
Usage
D'abord ... compilez-le!
Si vous souhaitez crypter le contenu de
mypreciousdata.txt
avec la clémysecretkey
et stocker le résultat dansmyprotecteddata.txt
:Maintenant, si vous souhaitez récupérer le contenu décodé de
myprotecteddata.txt
:Plus la clé est longue, plus c'est sûr!
Explication
Veuillez trouver le code développé et commenté ci-dessous:
la source
char
type (généralement 256).GolfScript
J'ai réussi à le presser en exactement 100 caractères!
Il prend l'entrée du texte chiffré ROT-n et sort le texte décodé. (Pris à partir d' ici .) Par exemple, lorsque donné l'entrée
pmttwxmwxtmwnxzwoziuuqvoxchhtmakwlmowtnabiksmfkpivom
, la sortie est8hellopeopleofprogrammingpuzzlescodegolfstackexchange
.la source
Javascript
Pour générer un identifiant unique en javascriptProduit quelque chose comme:
'h9d2f4aniimma7h1d3pbffi0foi8d3mf'
chaînes de 30 à 32 caractères alphanumériques
Produit quelque chose comme:
'uq2sze67hsacq5mi'
Cordes de longueur 14-16.
la source
C ++ 57
Ce programme prend une entrée de caractères et sort sa valeur ASCII.
la source
,:
Fortran - 85 octets
Lit un nombre et imprime la somme des chiffres . Utile pour les problèmes de Project Euler .
la source