-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path00-indice.lsp
2901 lines (2846 loc) · 88.4 KB
/
00-indice.lsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
============================================================================
Note su newLISP
Problem Solving e Matematica ricreativa con newLISP
© copyright 2019-2025 Massimo Corinaldesi aka cameyo
MIT-0 License
============================================================================
"Ogni cosa può accadere solo una volta"
========
INDICE
========
newLISP IN GENERALE
===================
Introduzione
Installazione
Eseguire newLISP
Le funzioni utente
Argomenti di una funzione
Trasformare una funzione distruttiva in non-distruttiva
Trasformare una funzione da due a n argomenti
Applicare una funzione ad ogni sottolista di una lista
Assegnazione globale: set, setq e setf (e define)
Assegnazione locale: let, letn e local
Effetti collaterali (side effect) di setq e let e local
Passaggio per valore e passaggio per riferimento
nil, true e lista vuota '()
La funzione quote e il simbolo '
Funzioni con memoria
Generare funzioni da funzioni
Tipi di numeri
Punto decimale o virgola decimale
Formattazione dell'output
Operazioni aritmetiche elementari
Incremento/decremento di variabili
Uso dei numeri big integer
Introspezione
Conversioni di tipo: implicite ed esplicite
Quanto sono precisi i numeri floating point?
Quanto sono strani i numeri floating-point?
Tipi di errore
Propagazione degli errori
Rappresentazione dei numeri floating point (32-bit)
Machine epsilon
Infinito e Not a Number (inf e NaN)
Confronto tra numeri floating-point
Verifica delle operazioni floating-point
Una strana successione
Operazioni sicure
Quanto vale pi greco?
Quanto vale il numero di eulero?
Tempo di esecuzione
Lista o vettore?
Vettori
Indicizzazione di stringhe, liste e vettori
Attraversamento di liste e vettori
Attraversamento di stringhe
Uscita anticipata da funzioni, cicli e blocchi
Lavorare con file di dati (file i/o)
Salvare e caricare gli oggetti
Struttura dati: il record
Ambito (scope) dinamico e lessicale
Contesti
Uso dei moduli
La variabile di ambiente NEWLISPDIR
Il file di inizializzazione init.lsp
Esempi sull'utilizzo dei moduli
Hash-Map e dizionari
CAR e CDR in newLISP
Espressioni regolari
Macro
FOOP - Programmazione funzionale orientata agli oggetti
XML e S-espressioni
Analisi dei tempi di esecuzione delle funzioni
Unificazione
Stampare con print/println/format
Codici ANSI ESCape
Complessità temporale delle operazioni aritmetiche fondamentali
Codifica Unicode e UTF-8
FUNZIONI VARIE
==============
Tabella ASCII
Pari o dispari
Crono
Cambiare di segno ad un numero
Moltiplicazione solo con addizioni
Divisione solo con sottrazioni
Distanza tra due punti
Conversione decimale <--> binario
Conversione decimale <--> esadecimale
Conversione decimale --> romano
Conversione numero intero <--> lista
Numeri casuali in un intervallo
Calcolo proporzione
Estrarre l'elemento n-esimo da una lista
Verificare se una lista è palindroma
Verificare se una stringa è palindroma
Verificare se un numero è palindromo
Zippare N liste
Sostituire gli elementi di una lista con un determinato valore
Raggruppare gli elementi di una lista
Enumerare gli elementi di una lista
Creare una stringa come ripetizione di un carattere/stringa
Massimo annidamento di una lista ("s-espressione")
Run Length Encode di una lista
Run Length Decode di una lista
Massimo Comun Divisore e Minimo Comune Multiplo
Funzioni booleane
Estrazione dei bit di un numero
Conversione gradi decimali <--> gradi sessagesimali
Conversione RGB <--> HSV
Calcolo della media di n numeri
Istogramma
Stampare una matrice
Retta passante per due punti
Coordinate dei punti di una funzione
Leggere e stampare un file di testo
Criptazione e decriptazione di un file
Funzioni per input utente
Emettere un beep
Disabilitare l'output delle espressioni
Trasformare una lista di stringhe in lista di simboli
Trasformare una lista di simboli in lista di stringhe
Simboli creati dall'utente
Il programma è in esecuzione? (progress display)
Ispezionare una cella newLISP
Informazioni sul sistema (sys-info)
Valutazione di elementi di una lista
Download tutti i file da una pagina web
Conversione numero da cifre a lettere
Punto a destra o sinistra di una linea
Creazione di un poligono da una lista di punti
Percorso minimo di una lista di punti
Utilizzo del protocollo ftp
Normalizzazione di una lista di numeri
Trasformazione omografica 2D
Numeri primi successivi e precedenti
Giorno Giuliano (Julian day)
Punto interno al poligono
Prodotto cartesiano
Insieme delle parti (powerset)
Terne pitagoriche
Calcolo di e con il metodo spigot
Calcolo IVA
Numeri casuali distinti
Numeri casuali con distribuzione discreta predefinita
Generatore di stringhe casuali
Inverso di un numero
Crivello di Atkin
Esponenziazione modulare veloce
random sample
Funzioni di Mobius e di Mertens
Quadruple pitagoriche
Lista dei contesti attivi
Conversione lista <--> stringa
Funzione butlast
Lista di tutte le partizioni di un numero
Algoritmo di Euclide esteso
Punti casuali in una circonferenza
Esponenziazione (potenza) binaria
Permutazioni circolari
Crivello di Eratostene Lineare
Area di un poligono semplice
Rango di una matrice
Operazioni tra coppie di elementi di una lista
Polinomio interpolatore di Lagrange
Moltiplicativo modulare inverso
Radice n-esima di un numero
Prodotto scalare (dot product)
Prodotto vettoriale (cross-product)
Angolo tra due direzioni (bearing)
URL encoder/decoder
Funzione "gamma-ln"
La funzione "select" per i vettori
Lunghezza di un numero intero
Normalizzazione
Papersize
Verificare se due numeri hanno lo stesso segno
Suddivisione di una lista
Stampo di un numero
Conversione vettore <--> lista
one?
Algoritmo Knuth-Morris-Pratt
Heap binario (Binary Heap)
Flood Fill
Poligoni convessi
Variazione percentuale
Grafico di coppie di coordinate
Sottosequenza crescente più lunga
Conversione stringa <--> big-integer
Dismutazioni (Derangements)
Stampa lista come tabella
newLISP 99 PROBLEMI (28)
========================
N-99-01 Estrarre l'ultimo elemento di una lista
N-99-02 Estrarre il penultimo elemento di una lista
N-99-03 Estrarre il k-esimo elemento di una lista
N-99-04 Determinare il numero di elementi di una lista
N-99-05 Invertire una lista
N-99-06 Determinare se una lista è palindroma
N-99-07 Appiattire una lista annidata
N-99-08 Elimina gli elementi duplicati consecutivi di una lista
N-99-09 Unire gli elementi duplicati consecutivi di una lista in sottoliste.
N-99-10 Run-length encode di una lista
N-99-11 Run-length encode di una lista (modificato)
N-99-12 Run-length decode di una lista
N-99-13 Run-length encode di una lista (diretto)
N-99-14 Duplicare gli elementi di una lista
N-99-15 Replicare per n volte gli elementi di una lista
N-99-16 Eliminare gli elementi da una lista per ogni k
N-99-17 Dividere una lista in due parti
N-99-18 Estrarre una parte di una lista
N-99-19 Ruotare una lista di N posti a sinistra
N-99-20 Eliminare l'elemento k-esimo di una lista
N-99-21 Inserire un elemento in una data posizione di una lista
N-99-22 Creare una lista che contiene tutti i numeri interi di un intervallo
N-99-23 Estrarre un dato numero di elementi da una lista in maniera casuale (random)
N-99-24 Lotto: estrarre N numeri differenti da un intervallo 1..M
N-99-25 Generare le permutazioni degli elementi di una lista
N-99-26 Generare le combinazioni di K oggetti distinti tra gli N elementi di una lista
N-99-27 Raggruppare gli elementi di un insieme in sottoinsiemi disgiunti
N-99-28 Ordinare una lista in base alla lunghezza delle sottoliste
ROSETTA CODE
============
FizzBuzz
99 Bottles of Beer
Numeri Primi
Numeri di Smith
Numeri di Hamming
Numeri di Catalan
Numeri di Kaprekar
Numeri Felici
Numeri Primoriali
Numeri Perfetti
Numeri Amicabili
Numeri Perniciosi
Numeri di Munchausen
Sequenza di Collatz
Permutazioni
Combinazioni
Regola di Horner
Problema dello zaino (Knapsack)
Giorno della settimana
Triangolo di Pascal
Codice Morse
Problema di Babbage
Cifrario di Cesare
Cifrario di Vigenere
Anagrammi
Numeri primi cuban
Data di Pasqua
Equazione di Pell
Punteggio numerico (ranking)
Legge di Bendford
Calendario
Carte da gioco
Generatore di password
Calcolo di Pi greco
Numeri di Lucas
Logaritmo intero di un numero intero
Numeri di Carmichael
Radice quadrata intera di un numero intero
Coppie di primi gemelli
Numeri semiprimi
Numeri coprimi
Fattorizzazione di un numero intero (big integer)
Potenza di due numeri interi (big integer)
Numeri di Tribonacci
Numeri Eureka
Abitazioni multiple
Toziente di Eulero
Numeri Vampiri
Il gioco del Nim
Fibonacci sequenze di n-numeri
Il problema dei matrimoni stabili
Test Primi Miller-Rabin
Il problema di Giuseppe (Josephus Problem)
ROT-13
Sudoku
Chess960
Percorso del cavallo
Teorema cinese dei resti
Numeri attraenti
IBAN
Estendere il linguaggio
Composizione di funzioni
Calcolo di una serie
Numeri gapful
Valutazione di una espressione RPN
Il gioco del 24
Sequenza fusc
Algoritmo Damm
Distanza tra due punti della terra
Algoritmo Soundex
Trasformata Discreta di Fourier (DFT)
Numeri Harshad
Numeri Humble
Persistenza di un numero
Numeri Taxicab
Codice Gray
Game of Life
Ackermann
Sequenza Q di Hofstadter
Sequenza Figura-Figura di Hofstadter
Sequenza G di Hofstadter
Sequenza Femmina (F) Maschio (M) di Hofstadter
Convex Hull
Sequenza Thue-Morse
Numeri di Bell
Numeri auto-descrittivi
Jort sort
Funzioni mutuamente ricorsive
Numeri in base negativa
Quaternioni
Bioritmi
Runge-Kutta
ISBN13
Insieme di Cantor
Incremento-decremento di una stringa numerica
Funzioni di prima classe
Inversione frase
Conteggio popolazione
Selezione casuale da una lista
Rappresentazione di Zeckendorf
Vecchie unità di misura Russe
PROJECT EULERO
==============
Problemi 1..105, 108..110, 112..117, 119..125,
135, 145, 173, 188, 191, 206, 469
PROBLEMI VARI
=============
BubbleSort
QuickSort
Simulare una matrice con un vettore
Implementare una pila (stack) con un vettore
Implementare una coda (queue) con un vettore
Coda circolare (Ring Buffer)
Fattoriale
Coefficiente binomiale
Lancio di dadi
Quadrati magici
Quadrati magici 3x3
Mastermind numerico
Algoritmo babilonese sqrt(x)
Radice quadrata intera di un numero intero (2^64 bit)
Ricerca binaria (Binary search)
Frazione generatrice
Il numero aureo
Equazione di secondo grado
Equazione di terzo grado
Sistemi lineari (Cramer)
Sistemi lineari (Gauss)
Numeri Brutti
Numeri Poligonali
Torre di Hanoi
Indovina il numero
Il problema Monty Hall
Il problema del compleanno
Algoritmo di Karatsuba
Formati A0, A1, A2, A3, A4, ...
Moltiplicazione del contadino russo
Distanza di Manhattan
Modello di crescita di una popolazione di conigli
The Game of Pig
Il gioco dei salti
Ricerca stringa in un testo (algoritmo base)
Ricerca stringa in un testo (algoritmo Z)
Distanza di Levenshtein
Social Network
Skyline
Knuth-shuffle
Bussola e direzioni
Puzzle (a b c + a b c + a b c = c c c)
Numero mancante
Somma massima di una sottolista (Algoritmo Kadane)
Prodotto massimo di una sottolista
Problema delle N-Regine
Somma delle cifre di un numero
Coppia di punti più vicina (Closest pair of points)
Moltiplicazione tra numeri interi (stringhe)
Numeri pandigitali
Somma dei divisori propri di un numero
Labirinti (calcolo percorsi)
Moltiplicazioni di fattori
Problemi patologici dei numeri floating point
Numerali di Church
Creazione e valutazione di polinomi
Quadrato perfetto di un numero
Potenza perfetta di un numero
Problema della segretaria
Numeri con tre divisori
Congettura di Goldbach
Problema dei travasi ed equazioni diofantee
Primi circolari
Radici di un polinomio (Bairstow)
Nomi ordinati
Distanza di numeri in una lista
Ascensore difettoso ed equazioni diofantine
Monete e griglie
Teorema di Pick
Problema dei fiammiferi di Banach
Window sliding
Il gioco di Wythoff
Ordinamento per rime
Lista circolare
Circuito automobilistico
Il problema delle studentesse di Kirkman
Contadino, lupo, capra e cavoli
Ancora la congettura di Goldbach
Triangolo di Steinhaus
L'ago di Buffon
La scimmia e le noci di cocco
DOMANDE PROGRAMMATORI (CODING INTERVIEW QUESTIONS)
==================================================
Notazione Big-O
Contare i bit di un numero (McAfee)
Scambiare il valore di due variabili (McAfee)
Funzione "atoi" (McAfee)
Somma di numeri in una lista (Google)
Aggiornamento di una lista (Uber)
Ricerca numero su una lista (Stripe)
Decodifica di un messaggio (Facebook)
Implementazione di un job-scheduler (Apple)
Massimo raccoglitore d'acqua (LeetCode)
Quantità d'acqua in un bacino (Facebook)
Sposta gli zeri (Facebook)
Intersezione di segmenti (byte-by-byte)
Trovare l'elemento mancante (LeetCode)
Verifica lista/sottolista (Visa)
Controllo ordinamento lista (Visa)
Caramelle (Visa)
Unire due liste ordinate (Facebook)
Salire le scale (Amazon)
Numeri interi con segni opposti (MacAfee)
Parità di un numero (McAfee)
Minimo e massimo di due numeri (McAfee)
Numero potenza di due (Google)
Stanze e riunioni (Snapchat)
Bilanciamento parentesi (Facebook)
K punti più vicini - K Nearest points (LinkedIn)
Ordinamento Colori (LeetCode)
Unione di intervalli (Google)
Somma dei numeri unici (Google)
Unione di due liste ordinate (Google)
Prodotto massimo di due numeri in una lista (Facebook)
Distanza di Hamming tra DNA (Google)
Controllo sequenza RNA (Google)
Somma di due box (Amazon)
Punti vicini a zero (Amazon)
Trova la Funzione (Uber)
Prodotto scalare minimo e massimo (Google)
25 numeri (Wolfram)
Le cento porte (Wolfram)
Insiemi con la stessa somma (Wolfram)
Tripartizione di un intero (Wolfram)
Cifre stampate (Uber)
Travasi di liquidi (Facebook)
Cambio monete 1 (LinkedIn)
Cambio monete 2 (LinkedIn)
Primi con cifre uguali (Wolfram)
Intervalli di numeri (Facebook)
Pattern Matching (Facebook)
Percorsi su una griglia (Uber)
Dadi e probabilità (Visa)
Numeri casuali e fattori (Wolfram)
Coprimi vicini (Wolfram)
Unione di liste (LinkedIn)
Tripla crescente (LeetCode)
Stringhe isomorfe (Facebook)
Raggruppamento codici (Google)
Caratteri differenti (Amazon)
Triple con una data somma (Uber)
Somma perfetta (Amazon)
Mescolare una lista (LeetCode)
Lista somma (geeks4geeks)
Ordinare una lista di 0, 1 e 2 (geeks4geeks)
Stipendio giusto (geeks4geeks)
Volo completo (Programming Praxis)
Benzina e stazioni (Uber)
Aggiungere uno (Google)
Numeri romani (LeetCode)
Numero singolo (McAfee)
Matrici a spirale (Google)
Lunghezza della sottostringa più lunga senza caratteri ripetuti (Amazon)
Rendere palindroma una stringa (Google)
Cifre diverse (Visa)
Rapporto minimo (Wolfram)
Quadrato binario (McAfee)
Fattoriale e zeri finali (Wolfram)
Massima ripetizione di un carattere in una stringa (Google)
Leggere libri (Uber)
Numero mancante (Wolfram)
Lista strettamente crescente (Visa)
Pile di monete (LinkedIn)
Numero più grande formato da una lista (Amazon)
Rettangoli e quadrati in una scacchiera (Google)
Rettangolo perfetto (Google)
Addizione per intervalli (Range addition) (Google)
Ordinamento Wiggle (Google)
Generare parentesi (Amazon)
Maggiori a destra (Visa)
Numero che raddoppia (Wolfram)
Calcolatore rotto (Broken calculator) (LeetCode)
Contare le isole (islands) (Google)
Lista con prodotto 1 (Amazon)
Somma delle monete (Visa)
Boomerang (Visa)
Ricerca in una matrice 2D (Wolfram)
Invertire le vocali (Google)
Intervalli mancanti (LeetCode)
Numeri strobogrammatici (LeetCode)
Bomba sul nemico (Visa)
Pitturare una staccionata (Amazon)
Palindroma più lunga in una stringa (algoritmo Manacher) (Amazon)
Permutazioni Palindrome (Uber)
LIBRERIE
========
Operazioni con i numeri complessi
Operazioni con le frazioni
Operazioni con i tempi
Operazioni con gli insiemi
Funzioni winapi
Operazioni con gli alberi binari
Simulazione dadi
funlisp.lsp (by Dmitry Chernyak)
The Little newLISPER (newlisper.lsp)
MessageBox (by Dexter Santucci)
default.lsp (by kazimir majorinc)
csv file (by Arguelles/cameyo)
NOTE LIBERE 1
=============
Perchè newLISP?
newLISP facile
Apprendere newLISP
Commentare righe di codice
Stile del codice newLISP
Considerazioni sulle parentesi del LISP
Controllare l'output della REPL (prettyprint)
Gestione di file e cartelle
Funzioni come liste
4-4 Puzzle
Il primo Primo
Uso delle date
Chiusura transitiva e raggiungibilità in un grafo
Stalin sort
Sequenza triangolare
Vettore/lista di funzioni
Numeri dispari differenza di quadrati
Zero? test
Operazioni su elementi consecutivi di una lista
Il loop implicito del linguaggio Scheme (named let)
Brainfuck string encode/decode
Creare una utilità di sistema (.exe)
Fattoriale, Fibonacci, Primi
Quine
I buchi delle cifre numeriche
Ordinare tre numeri
Conteggio strano
Funzioni automodificanti
I cicli (loops)
L'alfabeto web "Leet"
Autogrammi
Ambito dinamico e ambito lessicale (statico)
Uso delle espressioni condizionali
select e unselect (antiselect)
Generatori 1
Generatori 2
Shift logico e Shift aritmetico
fold-left e fold-right
La divisione di Feynman
Il linguaggio di programmazione Fractran
La funzione map semplificata
Generazione della documentazione con newLISPdoc
Ancora sui numeri primi
Un algoritmo: matrice con somme positive
Dadi e probabilità
Test Vettori e Liste
Un motore per espressioni regolari
Insiemi (set) senza reinserimento
Funzioni con parametri nominali
La funzione "command-event"
Massimo Comun Divisore (MCD)
Indicizzazione implicita
nil come valore e nil come risultato
Simulare un iteratore
"Don't underrate an iterate..."
Simboli che iniziano con "$"
Uso di map nelle liste annidate
Funzioni ordinali con le liste
gensym e macro igieniche
La variabile anaforica $idx
Gestione dei simboli
Funzioni e contesti
Buon 2020 (e 2021)
Nascita della teoria della probabilità
Fibonacci (104911)
Conta e leggi
Assegnazione parallela
Generatore di numeri casuali
Liste di associazione
Funzione Z e ipotesi di Riemann
Rotazione di stringhe, liste e numeri
Quadrato di una lista ordinata
Somma da due numeri
Mescolamento perfetto
Mergesort
Cifre crescenti e decrescenti
Somma di numeri
Operatori logici
Quick select
Macchina di Turing
NOTE LIBERE 2
=============
Creare una lista di frequenza
Approssimazione razionale di un numero
Modificare le liste annidate
Criptare un file sorgente o un contesto
Leggere e stampare un file
Lisp reader
Liste e vettori annidati
Conversione di un numero da una base ad un'altra
Convertire una stringa in un numero univoco
Reduce
Quadrati nascosti
Push, cons e list
Append esteso
newLISP keywords (Parole riservate)
Estrazione di dati da un file di testo
File di testo windows e unix
CRC32
Mescolare le parole
Parsing di stringhe
Formattazione di elementi di una lista
Slice mapping
Valore minimo/massimo di una lista di numeri
Sommare una stringa
Numeri palindromi
Frazioni continue
Liste formate da coppie di elementi
Liste quotate
Il limite sulle stringhe: il tag [text]...[/text]
Aggiunta di liste
Liberare una variabile
Massimo prodotto di due numeri
Test di funzioni
Sostituzioni multiple in liste o stringhe
Cambio monete
Funzione Harakiri
Ciclo for con numeri float
Nascondere la finestra DOS
Funzioni come parametri
Valutazione input utente
Passare dati per riferimento
Pagamento giornaliero
Differenze tra let e letn
Tecnica RAID
Crypto XOR
Lancio di una moneta
Area massima
Sole o pioggia
Roulette russa
Common LISP Quicksort
Ambito dinamico e parametri delle funzioni
Torte e tagli
Il ciclo "for"
Perché uno specchio inverte destra e sinistra invece che su e giù?
Treni e mosche
Gestione degli errori
Effetto percentuali
Teorema di Euclide (infinità dei numeri primi)
Il programma più corto
Frequenza cifre pi greco
Conversione a big-integer
Congettura 8424432925592889329288197322308900672459420460792433L
floor, ceil e fract
Multipli di nove
fizzbuzz esteso
Conversione tra liste, stringhe, caratteri e simboli
Divisori di un numero
Sequenza di Collatz/Hailstone
Generatore
Multiplo con tutti 1 e 0
Risolvere i sistemi lineari
Sudoku test
Integrali definiti
Fattorizzazione
"setq" o "set"
Memfrob
Generatore di sequenze
Massimo gap
Simulazione di un cannone
Ottimizzare il taglio di un tubo
Generazione automatica di una hash-map
NOTE LIBERE 3
=============
Generazione di un simbolo univoco
Compromessi tra tempo e spazio
Scambio di somme
Evitare begin nella condizione if
Frazioni continue (funzioni)
Redditi e tasse
Numero di eulero o di nepero
map e filter multiplo
Direct Acyclic Graph (DAG)
Corde e cerchio
Toziente
Numeri permutati
Numeri bouncy
docstring
Numeri sfenici
Bilancia a due piatti
Somma di 6s
Serie ricorsiva
Sei contro cinque
Torneo ad eliminazione diretta
Roulette sempre sul Rosso
Daniel Dennet Quinian Crossword
Lista delle fattorizzazioni di un numero
Algoritmo di Bellman-Ford
Catene di Markov
Contornare una matrice
Stringa decimale infinita 12345678910111213141516...
Numeri early-bird
Zero elevato a zero
Fattoriale di zero
Somma delle potenze dei primi n numeri
Cercaparole
Generare frazioni proprie
Somma di quadrati
Somma di cubi (Taxicab)
Somma numeri dispari (pari)
Cavo sospeso
Numeri automorfici
Numeri trimorfici
Funzioni come Stringhe
Assegnazione multipla
Doppio fattoriale
0.999999999...
Quadrati magici curiosi
Serie infinite
Il gioco del Pig
Mandelbrot
find per vettori
Variabili libere
Debug spartano
Espressioni ABCDEFGHIJ
Sequenza Juggler
Limiti dei big-integer
Valutazione di espressioni infisse
Vincere 2 volte su 3
Investimenti in comune
Dadi non transitivi (intransitivi)
Il prezzo di un libro
La barca, l'uomo e il mattone
Creare, modificare e restituire una funzione
Input utente multi-linea
Distanza dell'orizzonte
Tic-Tac-Toe
Labirinti (Maze)
Progettare TinyURL
Costante di Ramanujan
Giustificazione del testo
Data e tempo
Algoritmo di Gale-Shapley
Il problema dello zaino (Knapsack)
Validazione UTF-8
Sudoku mania
Radici quadrate con il metodo di Newton
Ippodromo
Parser di espressioni infisse-prefisse-postfisse
Derivate Simboliche
Media geotmetica
Verificare l'esistenza di un simbolo
Primi troncati
Contenimento del quadrato
NOTE LIBERE 4
=============
Una relazione tra π ed e
Ricerca del numero diverso
Ricerca del numero singolo
Punti in un semicerchio
Coefficiente di Sorensen-Dice
Parole di Lyndon
Fattorizzazione di Lyndon
Rimozione dei multipli
Rock Paper Scissors
TODO application
Quine e Narciso
Test di primalità
Passeggiata casuale lungo una linea
Serie di teste e croci (valore atteso)
Ricerca con caratteri jolly (wildcard)
Funzioni logiche booleane
Tavole di verità
Numeri Brasiliani
Probabilità condizionata
Teorema di Bayes 1
Teorema di Bayes 2
Probabilità bayesiane
Dadi
replace multiplo
ASCII Mandelbrot
Yahtzee
Gioco del 15
Numeri rari
Patience Sort
Lista degli indici di una lista
Buche sulle strada
Storia delle variabili
Numeri di Chowla
Secondi -> periodo
Partizione di una lista in due parti con somme uguali
Numeri di Zumkeller
Numeri di Leonardo
Frequenza caratteri
Frequenza parole
Magic 8-Ball
I Ching
Problema ABC
Compressione/Decompressione intervallo di valori
Plot di funzioni
Spirale di Archimede
Misure angolari
Numero di settimane
Il gioco del 21
Fattoriale sinistro (Left factorial)
Numeri primi lunghi
Numeri Tau
Sequenza Yellowstone
Distanza di Jaro
Pietre e gioielli (Stones and Jewels)
Numeri super-d
Algoritmo di Bresenham
Associare gli elementi di una lista ogni k
Somma delle potenze delle cifre
Bruchi saltellanti
Buste matrioska
ASCII Julia
Dado da 7 con dado da 5
42 in newLISP e C
Uguaglianza approssimata
Primi sexy
Tavola pitagorica
Sottostringa più piccola che contiene tutti i caratteri di una stringa
Algoritmo Floyd-Warshall
Triangoli casuali
Triangoli e bastoncini
Generazione di una lista di numeri casuali che sommano a 1
Numeri disarium
Numeri pronici
Formula di Erone
Tre funzioni per calcolare la potenza di un numero intero
Numeri Armstrong (narcisistici)
Evoluzione dell'algoritmo per la moltiplicazione di due numeri interi
Indice di equilibrio
Numero soluzioni equazione lineare a k variabili
Internet-point
NOTE LIBERE 5
=============
Spostamento di zeri
Quadratura approssimata
Introduzione alla programmazione dinamica
Programmazione dinamica: il gioco delle pentole d'oro (pots of gold)
Somma delle cifre in posizioni pari e dispari
Ordinare una lista con un'altra lista
Test di Lucas-Lehmer
0,1,2 con 0,1
Angolo delle lancette di un'orologio
Data e ora
Corda intorno alla Terra
Eredità
Sequenza di Farey
Distanza di Chebyshev
Anti-primi
Numeri altamente abbondanti
Creazione dinamica di variabili
La funzione "curry"
Algoritmo evolutivo
Nome del programma
loop e recur macro
Breve introduzione ai grafi
Lanciare N volte una moneta
Problema dei fiammiferi di Banach con N scatole
Conflitti read-write nelle transazioni di un database
Unico elemento diverso in una lista
1 o 2
Generare tutte le coppie di elementi di una lista
Numero di partite nel Tic-Tac-Toe
Estrazione dati da file PDF
Media continua
Sequenza di Kolakoski
Da stringa generica a stringa palindroma
Frasi e semplici regole grammaticali
commonLISP in newLISP
Peso ideale e indice di massa corporea
Sequenza di Golomb
Acquistare e vendere azioni
Numeri armonici
Valore atteso e linearità dell'aspettativa
Numero previsto di prove fino al successo
Moltiplicazione ricorsiva
Il gioco del Lotto
Hash-map e contesti
Numeri di Narayana
Numeri di Motzkin
Permutazioni, Disposizioni, Combinazioni
Valore massimo di una lista ordinata
Treni e binari
Mastermind (by Norman)
newLISP banner
Puzzle di Gordon Lee
Orologio ANSI
Indici ordinali
Generazione di password
Verifica accessibilità siti web
Miglior punto d'incontro
Stringhe Unicode (UTF8) o ASCII
Le funzioni "set-nth" e "nth-set" (deprecate)
Somma di interi rappresentati come liste
Equazione diofantea lineare
Cache LRU
Un bug della versione 10.7.5
Algoritmo LZW (Lempel Ziv Welch)
Moltiplicazione di due polinomi
Addizione di due polinomi
Sottrazione di due polinomi
Dadi e somme
Stringhe e dizionari (word break)
Estrazione codice sorgente da eseguibile newLISP
Algoritmo Boyer Moore (Voto di maggioranza - Majority element)
Convertire 0 in N (+1 o *2)
Funzione "substring" di Java
Clojure-style Tail Recursion in newLISP
Sviluppo di una funzione
Closures (chiusure)
Il concetto di base dei contesti in newLISP
Numeri palindromi e numeri di Lychrel
Numeri primi di Sophie Germain
Il numero 666
NOTE LIBERE 6
=============
Problema di Brocard
Errore quadratico medio (Mean Square Error - MSE)
Sequenze aliquot
Assegnazione di valori tra liste
Help macro
Sequenza di Recaman
Strutture dati autoreferenziali
Calcoli nel tempo
Text file utilities
Code Obfuscation
newLISP compiler?
Frazioni egizie
Formule polinomiali per numeri primi
Nomi delle variabili/funzioni e velocità di esecuzione
Radici primitive di un numero primo
Salto della rana 1
Salto della rana 2
Numeri regolari (5-smooth)
Conversione di una lista in un file .csv (excel)
Selezione di elementi con indice pari o dispari
Numero interno all'intervallo
Love newLISP
Creazione dinamica dei contesti
Ricerca elementi dalla fine (stringhe o liste)
eval, eval-string, read-expr
newLISP from newLISP
Valutazione di una funzione
Metodi di Monte Carlo
Metodi di Las Vegas
Vincere 2 volte su 3...
Ombrelli
Duello continuo
Cucciolata
Cancellare/modificare gli elementi di una lista mentre la si attraversa
Punto interno ad una sfera
Correttori di bozze
Probabilità: 1 su quanti?
Sondaggi imbarazzanti
Corte di giustizia
Programs Launcher
Duello tra idioti
Formula di Bernoulli