La tâche
C'est une tâche de codage assez simple, tout ce que votre programme a à faire est de placer un point sur une toile (ou votre alternative dans un autre langage de codage) et de le connecter à tous les points déjà placés. Votre programme doit prendre en une seule entrée, le nombre de points qui doivent être placés, et produire une sorte d'affichage avec les points connectés. Exemple
Exigences
- Je dois être en mesure de l'exécuter, ce qui signifie qu'il doit avoir un compilateur / outil pour l'exécuter en ligne ou accessible au téléchargement.
- Vous êtes autorisé à utiliser n'importe quelle bibliothèque créée avant la définition de ce défi, tant qu'elle n'a pas été conçue dans le seul but de résoudre ce problème.
- Il s'agit d'une tâche de code la plus courte, ce qui signifie des caractères. Les commentaires, le code qui change de couleur (pour la beauté) et les bibliothèques seront ignorés.
- Votre réponse doit être unique, ne volez pas le code d'autres personnes, raccourcissez-le de quelques caractères et republiez-le.
- Il doit pouvoir fonctionner en moins de 5 minutes, pour les valeurs de 5 et 100. Il doit également utiliser une résolution d'au moins 200 * 200 et placer chaque point dans un emplacement aléatoire sur la toile en utilisant une distribution non triviale.
Classement actuel
Flawr - Matlab - 22 - Confirmed
Falko - Python 2 - 41 - Confirmed
Wyldstallyns - NetLogo - 51 - Confirmed
Ssdecontrol - R - 66 - Confirmed
David - Mathematica - 95 - Confirmed
ILoveQBasic - QBasic - 130 - Confirmed
Adriweb - TI-Nspire Lua - 145 - Confirmed
Manatwork - Bash - 148 - Confirmed
Doorknob - Python 2 - 158 - Confirmed
Kevin - TCL - 161 - Confirmed
M L - HPPPL - 231 - Confirmed
Manatwork - HTML/JS - 261 - Confirmed - Improved code of Scrblnrd3
Makando - C# - 278 - Confirmed
Scrblnrd3 - HTML/JS - 281 - Confirmed
Geobits - Java - 282 - Confirmed
Si vous m'avez manqué, je suis vraiment désolé, ajoutez simplement un commentaire à votre travail en le disant et je l'ajouterai dès que je le verrai =)
TL; DR
- Entrée - Nombre de points (int, peut être codé en dur)
- Sortie - Image de points placés au hasard, tous connectés les uns aux autres (graphique)
- Gagnant - Code le plus court
Réponses:
Matlab (22)
On suppose que n est le nombre de points, et cela ressemble à n = 10:
n=6
:Explication
gplot
est une commande pour tracer des graphiques. Le premier argument est unen x n
matrice d'incidence (pleine de uns, évidemment). Le deuxième argument devrait être unen x 2
matrice avec les coordonnées des points, mais peu importe si la deuxième dimension est plus grande que 2, donc je génère juste unen x n
matrice de valeurs aléatoires (qui est 2 caractères plus courte que la génération d'unen x 2
matrice).Liens vers la documentation
la source
Java:
318 282265Parce que, tu sais, Java:
C'est juste une boucle simple qui crée des points aléatoires et trace des lignes entre le point actuel et tous les précédents.
Exemple avec 25 points:
Avec les sauts de ligne et les importations:
Edit: Puisque nous ne comptons pas les importations, j'ai importé quelques éléments supplémentaires pour enregistrer certains personnages plus tard.
Édition 2: OP a ajouté une allocation pour le nombre de points codés en dur. -17 caractères :)
la source
Python
2-4135Après avoir importé certaines bibliothèques comme autorisé pour ce défi
nous pouvons tracer un certain nombre de points connectés avec une seule ligne de code:
(La capture d'écran a été générée avec 10 points.)
la source
import
déclarations dans un défi de golf de code normal.Mathematica
9587Avec l'aide de Bélisaire.
n = 5
n = 100
Durée: 2,082654 s
la source
CompleteGraph[100, VertexCoordinates -> RandomReal[{0, 199}, {100, 2}]]
100
n'était pas nécessaire d'inclure, etInput[]
c'était facultatif.Python 2, 158
Importer des instructions non incluses dans le nombre de caractères, comme indiqué à la question ("les bibliothèques seront ignorées").
Exemples de sorties:
n = 2 (...):
n = 10 (ressemble à une chose ou quelque chose de fantaisie en 3D):
n = 100 (on dirait que quelqu'un est allé BLELEEEAARARGHHH avec un stylo rouge):
n = 500, 1000, 10000 (s'exécute en environ 1,5 seconde, 5-6 secondes et 3,5 minutes respectivement):
Remarque: le 10000 points a été exécuté avec une version légèrement optimisée qui a changé la ligne 3 (non compris les importations) en ceci:
Sinon, cela aurait pris une éternité. : P
Non golfé:
la source
x=255
et en l'utilisant pour remplacer les instances de200
et255
.R, 66
Celui-ci est une triche limite mais je pense toujours que c'est dans les règles. Configurer en chargeant le
igraph
package aveclibrary(igraph)
, qui peut être téléchargé depuis CRAN avecinstall.packages("igraph")
. Attribuez ensuite l'entrée à la variableN
. Selon les règles, celles-ci ne sont pas comptées dans le total.N = 50
Notez que ce code dessine également des auto-connexions. Les éliminer (bien qu'il n'y ait aucune règle contre eux) ajoute 6 caractères:
R, 141
Il s'agit d'une solution honnête à la bonté dans la base R:
même si vous devez toujours entrer
N
à la main.N = 50
Je me demande si une
for
boucle serait moins de caractères queapply
mais je suis content de ce que j'ai.la source
,"un"
à la fin de la première ligne.QBasic ou QuickBasic, 130 caractères
Variations de code
RANDOMIZE
parRANDOMIZE TIMER
.N=10
parINPUT N
ouINPUT "N";N
.Exemples de parcours
Pour
N=5
, testé avec QBasic 1.1 exécuté sur DOSBox 0.74:Pour
N=100
, testé avec QBasic 1.1 exécuté sur DOSBox 0.74:la source
Bash + ImageMagick: 148 caractères
Exemple d'exécution:
Exemple de sortie:
Exemple d'exécution:
Exemple de sortie:
Exemple d'exécution:
Exemple de sortie:
la source
TCL 161 caractères
De toute évidence, cela ne va pas gagner, mais en bat plusieurs autres présentés ici, et je pense qu'il fait bon usage d'un langage très sous-évalué.
La taille de toile par défaut sur mon système semble être 291x204. Je ne sais pas pourquoi, mais son utilisation permet d'économiser 13 caractères.
Assez rapide, 400 points en <5 secondes, 500 en ~ 10 s. La taille et les points peuvent être mis à l'échelle arbitrairement et les couleurs et les styles de ligne peuvent être modifiés, au détriment des caractères bien sûr. Sans golf et en utilisant des variables pour le rendre plus clair et plus facile à mettre à l'échelle et à colorer:
la source
[TI-Nspire] Lua -
145135130(Version fixe mise à jour)
"Importer" math.random en tant que "r", d'abord, comme autorisé:
r=math.random
Code réel:
Remarque: Ce code fonctionne sur les calculatrices TI-Nspire (TI a ajouté des scripts Lua aux systèmes d'exploitation récents de cette plate-forme, avec une API basée sur les données permettant aux utilisateurs de représenter des trucs, etc. par exemple.)
Il peut également être essayé en ligne ici (effacer simplement le script de démonstration et le mien avant avec
n=10
par exemple)la source
Formulaires Windows C #, 268
N = 5
N = 50
Le code complet est donné ci-dessous
la source
Pens.Tan
au lieu denew Pen(Color.Tan)
?HTML / JS, 210, grâce au manatwork
JSFiddle
la source
~~
au lieu dem.floor
pour économiser 5 octetscanvas
auto-fermeture de la balise et enlever les guillemets simples autour de laid
valeur:<canvas id=q />
. (Notez que vous devez laisser un espace entre la dernière valeur d'attribut et la fermeture automatique/
.) BTW, dans Firefox fonctionne très bien sansm.floor()
et~~
.C # WPF
306296Je voudrais dire que je pourrais supprimer Stroke = Brushed.Red. Mais malheureusement, cela signifie que je peins des lignes transparentes, et je suppose que cela ne compterait pas vraiment. : PI peut également raser quelques octets en créant simplement une grille dans la vue XAML. Mais cela semblait injuste, alors j'ai dépouillé le XAML pour devenir une toile vierge. (Je ne compte pas le XAML comme octets ...)
XAML
5
100
la source
var
lors de la déclaration des variables.HPPPL,
231220(Langage de programmation HP Prime pour la calculatrice graphique couleur HP Prime)
joué au golf. 11 caractères de moins en dessinant toutes les nouvelles lignes possibles juste après chaque nouvelle création de point. Seulement deux boucles imbriquées au lieu des trois précédentes.
Non golfé (270 caractères):
exemples:
c (10)
c (30)
La calculatrice graphique couleur HP Prime dispose d'un écran couleur 320x240 pixels.
Un émulateur qui fonctionne également avec le kit de connectivité est disponible sur le site Web HP ou ici: http://www.hp-prime.de/en/category/6-downloads
... toujours en attente de l'arrivée du matériel. Une mise à jour sur le temps d'exécution suivra.
Aujourd'hui, mon HP Prime est arrivé. Voici le temps d'exécution pour n = 100 sur une calculatrice réelle:
Environ 0,65 s pour n = 100.
L'émulateur est environ 4 fois plus rapide (environ 0,178 s) sur mon ordinateur portable Core i5 2410M.
la source
NetLogo, 51 octets
Remplacez 9s par d'autres constantes ou variables si nécessaire.
la source