Si cela vous convient, envisagez de participer à:
Le mensuel Dyalog APL 2017 Code Golf Challenge
Faire 12 extraits / expressions , dans la même langue, qui génèrent les nombres de 0 à 10 et 42 respectivement, mais sans écrire de données littérales numériques, chaînes ou caractères.
Données intégrées, comme PI()
etALPHABET()
, sont correctes, et le sont, par exemple, les constantes U, X, Y, Z et A de CJam, et les processus BLEND, CHORD, CENTER, BREAK et LINES de Processing.
Chaque extrait doit pouvoir être autonome, c'est-à-dire qu'il peut ne pas être interdépendant. Cependant, dans un seul extrait de code, vous pouvez affecter une variable et l'utiliser librement, tant que vous vous y référez directement par son nom, et non par le biais d'une chaîne contenant son nom.
Tous les extraits doivent être valides sur l'ordinateur de l'émetteur au moment de la soumission (comme indiqué par SE), mais ne peuvent pas dépendre de conditions locales inhabituelles telles que le nombre de fichiers dans un répertoire, la date ou l'heure exacte ou les informations spécifiques de l'utilisateur. .
Exemples d'extraits valides
3: INT(LOG10(YEAR(TODAY())))
parce qu'il reste vrai dans un avenir prévisible
4: CUBICROOT(LEN(CHARACTERSET()))
parce qu'un jeu de caractères de 256 lettres est très courant
8: SQRT(SYSTEMTYPE())
parce que les systèmes 64 bits sont très courants
Exemples d'extraits non valides
5: LEN(USERNAME())
parce que la plupart des gens n'utilisent pas «Admin» comme identifiant :-)
9: LOG10(SYSTEMMEMORY())
parce que cela ne fonctionne que sur des systèmes avec exactement 1 Go de mémoire
42: CODE("*")
parce qu'il contient un littéral chaîne / caractère
Le résultat de chaque extrait doit donner un nombre réel (value, int, float, etc.) pouvant être utilisé pour des calculs ultérieurs utilisant le même langage que l'extrait, c'est-à-dire pas une chaîne de texte représentant ce nombre.
Seules les langues basées sur les caractères sont autorisées.
Le score est le nombre total d'octets de tous les 12 extraits combinés. Les nouvelles lignes séparant les extraits ne sont pas comptées dans.
Notez que les règles ci-dessus peuvent empêcher certaines langues de participer, même si elles sont complètes.
questions - réponses
Q Les programmes peuvent-ils accepter n'importe quelle entrée?
R Oui, mais vous ne pouvez pas simplement demander une entrée et entrer le numéro correspondant.
Q Les chiffres physiques (autres que les données) sont-ils autorisés?
A oui, par exemple LOG10()
.
Q Les symboles en Ruby comptent-ils comme des littéraux?
Un oui.
Q Le score inclut-il des nouvelles lignes entre chaque extrait?
Un no
Q TI-BASIC est-il suffisamment "basé sur les caractères" pour être valide?
Un oui.
Q Est-ce que false et true comptent comme des littéraux numériques?
R Non, ils sont acceptables.
Q Pouvons-nous utiliser un littéral numérique pour appeler une fonction si c'est le seul moyen et que le nombre n'influence pas la sortie de la fonction?
R Oui, si c'est la méthode normale pour écrire du code dans votre langue.
Q Ma langue suppose qu'il y a un [quelque chose] au début de chaque programme / expression. Dois-je l'inclure ou mes extraits doivent-ils uniquement fonctionner s'ils sont placés au milieu d'un programme / d'une expression?
A Ils devraient juste travailler au milieu d'un programme / d'une expression.
Q Qu'en est-il des littéraux de regex?
A Interdit, sauf pour les langues qui ne font que des expressions rationnelles.
Q Est-ce qu'un code pouvant imprimer tous les numéros spécifiés est acceptable?
R Non, ils doivent être séparés et mutuellement indépendants.
Q Puis-je supposer un passe-partout similaire int main() {}...
ou équivalent?
Un oui.
Q Quels types de données de sortie sont autorisés?
Un type de données numérique quelconque, comme int, float, etc.
Q Dois-je imprimer le résultat de chaque extrait?
R Non, il suffit de rendre le résultat disponible pour une utilisation ultérieure.
Q Les variables prédéfinies sont-elles autorisées?
A Oui, et ils sont réinitialisés (si modifiés) pour chaque extrait.
Q Est-ce que π et e sont considérés comme des littéraux numériques?
R Non, vous pouvez les utiliser.
Q Puis-je retourner 4 et 2 dans des cellules différentes pour 42?
R Non, ils doivent être connectés en un seul numéro.
Q octets ou caractères?
Un octet, mais vous pouvez choisir la page de code souhaitée.
Q Peut - on utiliser des fonctions constantes et des variables prédéfinies telles que J 9:
, Actually 9
et Pretzel 9
?
R Oui, si le vocabulaire est fini (19 pour J, 10 pour Actually et Bretzel).
Réponses:
Hexagonie , 13 octets
Essayez-le en ligne!
En hexagone, les fonctions
0
traversantes multiplient la mémoire actuelle par 10, puis ajoutent le nombre représenté par le nom de la fonction. Par conséquent, le premier extrait est vide car les souvenirs commencent par .9
0
Par exemple, si la mémoire actuelle est
65
, l'exécution de la fonction3
créera la mémoire actuelle653
.(Aux votants descendants: votez tous ce que vous voulez, je suis prêt.)
la source
Fonction , 1222 octets
Outre les littéraux numériques, il existe deux façons de produire une valeur (n'importe quelle valeur) dans Funciton: les expressions stdin et lambda. Stdin est une boîte simple alors qu'une expression lambda complète nécessite plus de syntaxe, alors j'utilise stdin. Cependant, bien que stdin puisse être n'importe quoi, tous les travaux suivants fonctionnent, quel que soit le type d'entrée fourni.
Toutes les fonctions de bibliothèque utilisées ici existaient avant la publication du défi.
0 (40 octets en UTF-16)
Ceci utilise la syntaxe brute pour moins que. Une valeur n'est jamais inférieure à elle-même, le résultat est donc 0.
1 (52 octets en UTF-16)
⌑
renvoie une séquence lente contenant un seul élément etɕ
compte le nombre d'éléments. (La séquence paresseuse est suffisamment paresseuse pour que cet extrait de code n'évalue pas stdin du tout!)2 (70 octets en UTF-16)
= 2¹.
ʂ
génère toutes les sous-séquences d'une séquence et transforme ainsi une séquence de n éléments en un avec 2ⁿ.3 (88 octets en UTF-16)
= 2 + 1.
♯
incrémente une valeur de 1.4 (88 octets en UTF-16)
= 2².
5 (106 octets en UTF-16)
= 4 + 1.
6 (106 octets en UTF-16)
= 3 factorielle.
7 (110 octets en UTF-16)
= A (2, 2) (fonction Ackermann).
8 (118 octets en UTF-16)
= 2 << 2 (décalage gauche).
9 (128 octets en UTF-16)
= 3 × 3.
10 (146 octets en UTF-16)
= 5 + 5.
42 (170 octets en UTF-16)
= 6 × (6 + 1).
la source
JavaScript,
144141140138132125123 octetsAvec l'aide de @ edc65 , @Sjoerd Job Postmus , @DocMax , @usandfriends , @Charlie Wynn et @ Mwr247 !
la source
-~-~Math.PI
et-~-~-~Math.PI
enregistrer un autre octet (deux fois).(escape+NaN).length
. PS Aujourd'hui, j'ai appris que JavaScript est vraiment bizarre ...NaN
compte comme un nombre, mais c'est littéralement pas un nombre: PMouse-2002 ,
27261714 bytesLes premiers extraits poussent 0-10, et
ZR+
pousse25
ensuite17
et25 17 + 42 =
est1
.la source
int main() {}...
équivalent standard qui le fera fonctionner.CJam,
2724 octetsMerci à @ MartinBüttner pour -1 octet!
Essayez-le en ligne!
la source
Brainfuck, 70 octets
Chaque ligne doit être exécutée individuellement.
Les 10 premiers sont explicites: nous incrémentons la valeur de la cellule via chaque plus.
Le 42 est beaucoup plus complexe. Il repose sur le fait que l'interprète le plus brainfuck utilise des cellules de 8 bits, ce qui signifie que toutes les opérations qui s'y rapportent sont effectuées modulo 256. Les
--
cellules des cellules n ° 0 à 254. Ensuite, nous entrons dans une boucle qui s'exécute jusqu'à ce que la cellule n ° 0 soit égale à 0. Chaque itération ajoute 1 à la cellule n ° 1 et 6 à la cellule n ° 0. Cette boucle est exécutée 43 fois, la cellule 1 est donc 43. Enfin, nous soustrayons 1 à la cellule 1 pour la transformer en 42.J'ai obtenu le 42 le plus efficace jamais trouvé sur http://esolangs.org/wiki/Brainfuck_constants
la source
Ténèbres ,
339303 octetsC'est là que les ténèbres brillent vraiment . Tu piges? : ~)!
Sans impression (remplace l'espace par
\s
dans la première ligne car il ne sera pas affiché autrement):Avec impression:
Dans ce cas, chaque ligne doit être exécutée individuellement car le programme se termine à la lumière (un espace). Cependant, il est possible d'écrire cela sur une ou plusieurs lignes du même programme.
L'obscurité normale () incrémente un registre de 1, et l'instruction ■ (une sorte de mini-obscurité) génère le contenu du registre.
la source
Perl 5,
86757166 octetsTout
^F
s sont des caractères de contrôle littéraux (0x06 en ASCII) et, par conséquent, un seul octet.Merci à msh210 d’ avoir économisé 11 octets et à Dom Hastings de 9 octets!
la source
!$[+ord$/ # -1 + 10
- Je comprends pas. Dans la ligne 2, vous dites que cela!$[
vous donne 1, pas -1, donc cet extrait donne 11.MATL, 30 octets
H
,I
etK
sont des constantes prédéfinies pour 2, 3 et 4 (commepi
).O
etl
sont des fonctions qui retournent une matrice de zéros (O
) ou de ones (l
), la taille par défaut est 1x1.:
crée un vecteur, et les
résume,K:s
crée donc un vecteur de 1 à 4 et le calcule pour obtenir 10.Yq
est la n-ième fonction principale, de même queKYq
le 4ème nombre premier, 7.la source
Yq
fonction (et son implémentation) était une très bonne suggestion de votre part :-)IK+
ça marcherait aussi bien pour 7, mais c'est un peu trop ennuyeux: PProlog,
113 à99 octetsSnippets:
Combine les constantes mathématiques e et pi de différentes manières converties en int.
Edit: 14 octets enregistrés en utilisant des flottants pour 0-2.
la source
PHP,
15714591 octetsPremière publication sur Code Golf, a décidé de tenter le coup. Je finirai par aller mieux: P Si tu vois des endroits évidents (pour toi) où je pourrais sauvegarder des personnages, fais-le-moi savoir.
EDIT: J'ai réalisé que je n'avais pas besoin des points-virgules, car ce ne sont que des extraits.
EDIT2: Merci à Blackhole pour ses nombreuses suggestions!
la source
LC_ALL
pour 0 (-1 octet),DNS_A
pour 1 (-3 octets),LOCK_NB
pour 4 (-3 octets),LC_TIME
pour 5 (-7 octets),LOG_INFO
pour 6 (-8 octets),INI_ALL
pour 7 (-5 octets), ...IMG_WBMP
Pour 8 (-4 octets),SQL_DATE
pour 9 (-9 octets),SQL_TIME
pour 10 (-3 octets) etLOG_INFO*INI_ALL
pour 42 (-11 octets). D'où un total de 51 octets sauvés! Ces constantes sont valables au moins en PHP 5.6.1 sous Windows.LC_ALL
une chose dépendante de la localisation?setlocale()
pour changer toutes les catégories de locales. Mais la valeur de la constante elle-même est bien sûr indépendante de la localisation :).Python 2,
191159158157 157156149146 octetsMa première soumission, j'espère avoir tout bien compris! D'après le temps que j'ai passé sur ce sujet, je suppose qu'il y en a sûrement un meilleur pour certains d'entre eux.
Merci beaucoup à FryAmTheEggman!
la source
True
d'un idiome pour 1 devrait être acceptable, car je ne sais pas quand ils ne sont pas équivalents en tant que fragments.True is not 1
pour tous les calculs basés sur 1, ça aide! Édition maintenant.#8 len(`id(id)`)
. Ensuite, 8, 9 et 10 seront plus courts. Vous pouvez également ajouter un lien hypertexte à Essayez-le en ligne .len(`{()}`)
pour 11 octets, et cela vous donne 7 à 10 plus court.C #, aucune utilisation, 234 octets
C'est beaucoup plus ennuyeux que ce que je pensais au départ. J'avais des idées assez variées, telles que
new[]{true}.Length
ettrue.GetHashCode()
ettypeof(int).Name.Length
etuint.MinValue
etc., mais je les ainew int()
toutes battues.la source
var a = new int();
et ensuite d'utilisera
dans chaque extrait?using
déclaration.int a=-~-~new int();a<<a
PowerShell, 147 octets
Ceux-ci utilisent
+
implicitement les choses en éléments entiers. Les derniers numéros utilisent Enums des unerpinnings .Net Framework de PowerShell qui ont les bonnes valeurs.-~-~-~
utilisé dans JavaScript, C # et les réponses PHP seraient- -bnot - -bnot - -bnot
dans PowerShell.x^y
l’exponentiation utilisée dans les réponses Perl, oux**y
dans Python ou JavaScript ES7, serait[Math]::Pow($x,$y)
les constantes e et Pi sont lourdes en caractères
[Math]::E
et[Math]::PI
la source
x^y
est xor en JavaScript. JavaScript (ES7) a**
pour exposants. SourceDC , 35 octets
Pour tester les extraits, ajoutez a
f
pour imprimer la pile et transmettez cette chaîne àdc
:la source
E
etF
voici les chiffres (même lorsqu'ils sont supérieurs à la base d'entrée). La preuve en est qu'ils se combinent en chiffres; par exempleF0
->150
. Vous pouvez voir le même comportement avec les chiffres décimaux lorsque vous modifiez la base d’entrée et de sortie.TI-BASIC, 41 octets
0 ~ 10:
42:
Dans TI-BASIC, toutes les variables à lettre unique non initialisées commencent à 0 et
Xmax
(la limite de la fenêtre de droite de l'écran du graphique) commence à 10.La constante mathématique
π
est un octet , maise
deux octets.la source
Python 2,
306275274 octetsJ'ai utilisé le fait que pour tout x (entier et non 0) l'expression
x/x
est égale à 1 et joué avec quelques opérations au niveau des bits.J'ai ajusté les extraits de telle sorte qu'ils répondent toujours aux exigences (merci @nimi, cela m'a sauvé 24 octets), mais vous devez les tester manuellement. Voici le code et le nombre individuel d'octets:
la source
i=id(id);r=~i/i
Math ++, total de 92 octets
0 (1 octet):
a
1 (2 octets):
!a
2 (3 octets):
_$e
3 (4 octets):
_$pi
4 (7 octets):
_$e+_$e
5 (8 octets):
_($e+$e)
6 (9 octets):
_$pi+_$pi
7 (8 octets):
_($e*$e)
8 (9 octets):
_($e*$pi)
9 (10 octets):
_($pi*$pi)
10 (12 octets):
_$e*_($e+$e)
42 (19 octets):
_($pi+$pi)*_($e*$e)
la source
Javascript (Browser Env),
155136130 octetsMerci à:
@Ismael Miguel : 155 -> 136 -> 130 octets
la source
-~[]+[]+-[]
pour produire10
. Il renverra une chaîne, mais il reste utilisable en tant que nombre. En outre, vous pouvez utiliser-~(top+top.s).length
pour calculer42
(-8 octets) et abandonner votre dépendance à Google Chrome. Pour économiser plus de 3 octets, utilisez-le(P=Math.PI)*P>>+[]
pour calculer 9.~(~[]+[]+-[])
pour générer9
. Cela devrait réduire quelques octets de plus.+[12]
donne12
et+[1, 2]
donneNaN
. Je déteste JS[1,2,3]
=>"1,2,3"
et les chaînes en nombres"12"
= =>12
mais s'il y a des caractères non numériques dans la chaîne, la conversion est renvoyéeNaN
.+[1,2]
jette sur une chaîne alors un nombre mais la chaîne contient une virgule pour"1,2"
devenirNaN
.Sérieusement,
3933 octetsLa substance entre parenthèses est explications:
Hexdumps de programmes:
Merci à Quintopia pour 6 octets!
la source
HlPD
enregistre 2 octets sur 42, etQlP
enregistre un octet sur 7, etQlª
enregistre un octet sur 9, etQl╙
enregistre un octet sur 8. Je pense que cela descend sérieusement à 33 octets, liant Pyth.dc, 42 octets
Résultats
Il n'y a pas beaucoup de façons de générer de nouveaux nombres avec dc. J'utilise
O
: base de sortie, initialement 10;K
: précision, initialement 0;z
profondeur de la pile, initialement 0;Z
chiffres significatifs d'opérande. Nous les combinons avec les opérateurs arithmétiques habituels.Programme de test
la source
Mathematica, 101 octets
Je suis sûr que certaines d'entre elles sont sous-optimales. Ces crochets sont vraiment chers.
Par souci de cohérence, les deux premiers pourraient aussi être
E-E
etE/E
bien sûr, mais je pensais que c'est assez astucieux pour obtenir0
et à1
partir d' un calcul avec des variables non définies.la source
0
. Sia
obtient la valeur0
après, ce n'est pas un problème, tant qu'il est inutilisé quanda/a
est évalué.Japt ,
343330 octets1 octet enregistré grâce à @ThomasKwa
Voici ce que chacun des différents caractères signifie:
la source
A-I
sont des variables qui sont, par défaut, attribuées à différents nombres, comme indiqué ci-dessus.A-F
sont affectés à 10-15. Cela invalide-t-il ces variables?Marbelous , 98 octets
Pas très excitant, il repose sur les
?n
dispositifs qui transforment n'importe quelle bille en une valeur aléatoire de l'ordre de 0..n (inclus), ce qui a pour effet secondaire?0
transformer toute bille en 0 quelle que soit l'entrée. Je pense que l'utilisation de littéraux est autorisée car la valeur n'affecte pas le résultat et il n'y a pas d'autre moyen d'appeler une fonction une fois dans Marbelous.0:
1:
...
9:
dix:
42:
la source
> <> , 86 octets
ln;
lln;
llln;
lll+n;
lll:+n;
llll+n;
llll++n;
oullll:+n;
lllll+n;
lllll:+n;
lllll++n;
oullllll+n;
llll+:+n;
oulll:l+*n;
llll*ll+*n;
S'appuie sur la taille de la pile pour obtenir ses littéraux.
la source
n
sur chacun car les fonctions dans les langages basés sur la pile peuvent laisser la sortie sur la pile pour -11 octets.;
pour un total de 22 octets et considérer la fin de la fonction atteinte à la fin de la ligne, mais c'est un peu ambigu puisque><>
je n'ai pas de fonctions clé en main .><>
, celles-ci doivent accepter une position de retour (x & y) sur la pile en plus de leurs paramètres. Assurez-vous qu’ils ne gênent pas la réalisation des calculs (ce qui[
est pratique dans ce contexte), puis sautez à la position de retour après avoir terminé l'exécution. J'avais fait un POC il y a quelque temps, vérifie-le si ça t'intéresse;
. La raison pour laquelle je dis de partir;
est parce que sinon, il n’ya aucun moyen de dire quand la fonction se termine sans un.
. La plupart des gens semblent considérer cela comme équitable, mais je pourrais essayer d'écrire un méta-post ici si vous êtes inquiet.><>
extraits.
, mais je conviens que;
c'est une bonne alternative qui nécessite moins d'explications.Formules MS Excel,
163151150143 octetsCe n'est pas vraiment un langage de programmation, mais ça y est ...
PI()
est utilisé dans la plupart des cas car il s'agit du moyen le plus court (à ma connaissance) d'introduire une valeur numérique sans utiliser un nombre ou une chaîne de caractères.N
convertit diverses choses (y compris les booléens) en nombres etT
convertit diverses choses en texte.TYPE
renvoie 2 pour un argument texte et 4 pour un argument booléen.TRUNC
élimine la partie décimale (arrondit les nombres positifs vers le bas),EVEN
arrondit au nombre pairODD
supérieur et au nombre impair suivant.CODE(-PI())
est le code ASCII du premier caractère de la conversion en texte de -π, soit 45 (pour "-").EDIT: Suppression des signes égaux du nombre d'octets (-12!) - comme l'a souligné Nᴮᶻ dans les commentaires, ils ne sont pas censés être inclus.
EDIT 2: En supposant que le reste de la feuille de calcul soit vide, il est possible d’utiliser une référence à une cellule vide égale à zéro (à nouveau, suggérée par Nᴮᶻ) à condition d’inclure un signe moins (ou de l’utiliser dans une autre expression numérique) pour résoudre tapez l'ambiguïté.
la source
=Z9
=
s, merci. En ce qui concerne votre suggestion, j’ai évité exprès de faire référence à des cellules afin de m'assurer que les formules sont indépendantes du contenu du tableau - si ellesZ9
contiennent du texte,=Z9
elles ne renverront plus zéro. J'ai décidé de ne rien assumer à propos de la table.Z9
sur une feuille vide se trouve une valeur vide qui est convertie0
en beaucoup de cas, mais peut être convertie en""
(chaîne vide) si elle est utilisée dans certaines expressions - un peu comme un Variant non initialisé VBA - il n’est donc pas strictement équivalent à0
. Par exemple,= 0&"a"
est évalué à"0a"
mais= Z9&"a"
évalue à"a"
. Cela peut être résolu, toutefois, en ajoutant un unaire-
à la référence (ce qui l'oblige à être numérique - encore une fois, comme dans VBA). Donc,-Z9
peut être utilisé comme zéro. Je viens de mettre à jour la réponse. Merci encore.DUP , 68 octets
Try it here.
Il y a beaucoup de façons de faire cela, mais j'abuse de la pile de retour pour celle-ci.
Explication
Pour bien comprendre cela, vous devez comprendre le comportement de DUP concernant les lambdas. Au lieu de pousser le lambda lui-même sur la pile, il pousse en réalité l'adresse IP actuelle vers la pile lorsque le lambda est détecté. Cela peut expliquer les 3 premiers extraits, qui impliquent lambdas.
Les extraits suivants utilisent la pile de retour. Quand
!
est exécuté, l'adresse IP actuelle est poussée dans la pile de retour et le haut de la pile est défini comme nouvelle adresse IP pour démarrer l'exécution lambda.)
insère un numéro de la pile de retour dans la pile de données.C'est à peu près suffisant pour expliquer le reste des extraits. Si vous ne l'obtenez toujours pas, gardez à l'esprit que le Stepbouton est très pratique!
la source
05AB1E,
403824 octetsla source
Y·
est plus propre que pileYx
,X
peut être utilisé à la place d’º
ici (par défaut1
,º
signifielen(stack)>1
, cela signifie qu’il ne fait rien par défaut). De plus, votre nombre de tours est égal à 24 et non à 35 (CP-1252, les nouvelles lignes ne sont pas comptabilisées s'il s'agit d'extraits séparés).₆t
maintenant (appuyez sur 36, racine carrée) pour enregistrer un octet ( essayez-le en ligne ).D1ffe7e45e , 112
Chaque ligne est un extrait différent.
Les nombres dans le programme ne comptent pas comme des littéraux numériques, car ils ne sont utilisés que comme des commandes.
Le dernier peut certainement être joué au golf plus.
EDIT: Je travaille avec l'interprète et tous les extraits fonctionnent. Si vous souhaitez tester si vous-même, ajoutez
0f0f
à la fin de l'extrait de code afin que le programme se termine.la source
+
égale à 2, ce qui est interprété comme une commande d’incrémentation (comme dans Brainf ** k). Je pensais que, puisqu'elles étaient utilisées comme commandes et non comme des nombres, elles comptaient toujours. Je supprimerai la réponse si ce n'est pas le cas.Pyth,
353433 octets-1 octet par @Mimarik
Il existe un certain nombre de possibilités pour certains programmes.
0, 1 octet
1, 2 octets
2, 3 octets
3, 3 octets
4, 3 octets
5, 4 octets
6, 3 octets
7, 4 octets
8, 3 octets
9, 2 octets
10, 1 octet
42, 4 octets
Tous ces éléments impliquent soit des commandes de base double (
y
), +1 (h
) et -1 (t
), soitl
(longueur d'une chaîne). La variable Z est initialisée à zéro.Pour 5,
b
est initialisé à un caractère de nouvelle ligne. Backtick donne"\n"
(y compris les guillemets, et la longueur de cette chaîne est 4.Essayez-les ici !
la source
yhyT
. (J'ai rejeté le montage selon meta.codegolf.stackexchange.com/questions/1615/… )