feat: aggiungo parte1 e parte2 di 04_aeolian_transmissions

This commit is contained in:
alessandro.rabiti 2025-04-01 19:15:01 +02:00
parent c41cabedd0
commit bad4c1eb29
7 changed files with 352 additions and 0 deletions

View file

@ -36,3 +36,68 @@ For example, consider the (smaller) inventory list below:
The first range, 8-9, contains 2 boxes. The second range, 9-10, contains 2 boxes. The third range, 7-8, contains 2 boxes. The fourth range, 8-10, contains 3 boxes. By continuing this process, we can determine that the total number of boxes (for this file) is 43. The first range, 8-9, contains 2 boxes. The second range, 9-10, contains 2 boxes. The third range, 7-8, contains 2 boxes. The fourth range, 8-10, contains 3 boxes. By continuing this process, we can determine that the total number of boxes (for this file) is 43.
Considering your file, what is the total number of boxes in all of the piles? Considering your file, what is the total number of boxes in all of the piles?
Part 2
Difficulty Rating: 2
The calculation was correct, but there are noticeably fewer piles than expected… Youll just ask the captain about this.
“Oh, he mustve misremembered. Each line in the file actually represents one pile.”
Ah, a miscommunication. Apparently, both ranges on a line represent one pile. Thats alright, as you still have some time.
The captain tells you that if a number is in any of the ranges on a line, then that pile contains one box labelled with that number. For example:
A pile represented by 6-8 8-10 contains 5 boxes (labelled 6, 7, 8, 9, and 10).
A pile represented by 5-6 7-8 contains 4 boxes (labelled 5, 6, 7, and 8).
A pile represented by 3-4 7-8 contains 4 boxes (labelled 3, 4, 7, and 8).
Youll still have to figure out the total number of boxes in all of the piles combined.
For example, consider the same sample inventory list:
8-9 9-10
7-8 8-10
9-10 5-10
3-10 9-10
4-8 7-9
9-10 2-7
The first pile, represented by 8-9 9-10, will contain 3 boxes (labelled 8, 9, and 10). The second pile contains 4 boxes (labelled 7, 8, 9, and 10). The third pile contains 6 boxes, the fourth pile contains 8 boxes, the fifth pile contains 6 boxes, and the sixth pile contains 8 boxes. So, for this file, there will be 35 boxes in total.
Considering your file, what is the total number of boxes in all of the piles?
Part 3
Difficulty Rating: 3
You send the calculation to the lab, and they confirm that none of the boxes have gone missing in transmission. Great!
Due to space constraints, youll only be able to load two piles of supply boxes onto the ship. As boxes with the same label contain the same items, you should take as many uniquely labelled boxes as possible.
Suddenly, the captain calls out to you.
“Were short on time! Well only be able to load two piles that are adjacent to each other!”
You observe your surroundings: the piles of boxes are already arranged in a single line. The first line in the file represents the first pile, the second line in the file represents the second pile, and so on.
As you are short on time, youll have to find the maximum number of uniquely labelled boxes in two adjacent piles.
For example, consider the same sample inventory list:
8-9 9-10
7-8 8-10
9-10 5-10
3-10 9-10
4-8 7-9
9-10 2-7
There are 4 uniquely labelled boxes when pile 1 and pile 2 are combined. There are 6 uniquely labelled boxes when pile 2 and pile 3 are combined. Continuing the process, there are 8 when pile 3 and pile 4 are combined, 8 when pile 4 and pile 5 are combined, and 9 when pile 5 and pile 6 are combined. So, the maximum number of uniquely labelled boxes in two adjacent piles (for this file) is 9.
Considering your file, what is the maximum number of uniquely labelled boxes in two adjacent piles?

View file

@ -0,0 +1,49 @@
import data
# splitto la lista data per togliere gli spazi e gli "a capo"
split = data.l.splitlines()
# aggiungo una variabile per sommare i range
somma = 0
for i in split:
# splitto nuovamente per non avere il carattere - e separare i due numeri
splot = i.split(" ")
# definisco due nuove variabili per splittare le due stringhe
asplot = []
bsplot = []
# associo alle due nuove stringhe i valori
asplot = splot[0]
bsplot = splot[1]
# definisco le variabili per splittare i quattro valori di ogni stringa
alfa = 0
beta = 0
gamma = 0
delta = 0
# associo ad ogni variabile uno dei quattro numeri dei due range
alfa = int(asplot.split("-")[0])
beta = int(asplot.split("-")[1])
gamma = int(bsplot.split("-")[0])
delta= int(bsplot.split("-")[1])
# creo due liste vuote
boxes1 = []
boxes2 = []
# associo alle due liste tutti i valori dei due range
boxes1 = list(range(alfa,beta+1))
boxes2 = list(range(gamma,delta+1))
# creo una copia della prima lista
new_boxes = boxes1
# per ogni elemento della seconda lista, che non e' presente nella prima lista,
# lo aggiungo a new_boxes
for i in boxes2:
new_boxes.append(i)
# rimuovo eventuali numeri duplicati
no_duplicates_boxes = list(set(new_boxes))
# ordino dal minore al maggiore
sort_boxes = sorted(no_duplicates_boxes)
# aggiungo alla variabile somma, il valore della linghezza della lista ottenuta
somma += len(sort_boxes)
print ("Result :", somma)

View file

@ -0,0 +1,70 @@
import data
# splitto la lista data per togliere gli spazi e gli "a capo"
split = data.l.splitlines()
# aggiungo una variabile per sommare i range
somma = 0
# aggiungo una variabile per fare una lista di liste
listona = []
# aggiungo variabile per calcolo lunghezza massima
max_len = 0
for i in split:
# splitto nuovamente per non avere il carattere - e separare i due numeri
splot = i.split(" ")
# definisco due nuove variabili per splittare le due stringhe
asplot = []
bsplot = []
# associo alle due nuove stringhe i valori
asplot = splot[0]
bsplot = splot[1]
# definisco le variabili per splittare i quattro valori di ogni stringa
alfa = 0
beta = 0
gamma = 0
delta = 0
# associo ad ogni variabile uno dei quattro numeri dei due range
alfa = int(asplot.split("-")[0])
beta = int(asplot.split("-")[1])
gamma = int(bsplot.split("-")[0])
delta= int(bsplot.split("-")[1])
# creo due liste vuote
boxes1 = []
boxes2 = []
# associo alle due liste tutti i valori dei due range
boxes1 = list(range(alfa,beta+1))
boxes2 = list(range(gamma,delta+1))
# creo una copia della prima lista
new_boxes = boxes1
# per ogni elemento della seconda lista, che non e' presente nella prima lista,
# lo aggiungo a new_boxes
for l in boxes2:
new_boxes.append(l)
# rimuovo eventuali numeri duplicati
no_duplicates_boxes = list(set(new_boxes))
# ordino dal minore al maggiore
sort_boxes = sorted(no_duplicates_boxes)
# aggiungo la lista di ogni riga ad una lista (lista di liste)
listona.append(sort_boxes)
# calcolo la lunghezza della lista
len_listona = len(listona)
# se la lunghezza della lista e' != 2 salto
if len_listona == 2:
# creo una variabile temporanea con la lista parzuiale dei numeri
lista_par = []
# popolo la lista con tutti i numeri della lista di liste
lista_par = sum(listona, [])
# elimino numeri doppi e metto in ordine crescente
lista_par_sort_unic = (sorted(set(lista_par)))
# se nella lista di liste ci sono gia' due elementi (due righe di dati)
# allora elimino il primo elemento
del listona[0]
# se il numero di elementi e' maggiore del caso precedente, allora aggiorno
if len(lista_par_sort_unic) > max_len:
max_len = len(lista_par_sort_unic)
print ("Result :", max_len)

View file

@ -0,0 +1,100 @@
HHPBBBLLLCCCCXXOOOOZZZZZZECCUUUUUUUUUPPPIIIIICCCJGGGBBBBBBBBBBBZZZZZQQQQQQQQPPPPPPPP
XXNNNNNKXXXXXXXXXIIIIIIOOOOOOOCWWWLLLLLAGGGHHHHDDDDDDDRRRFAAAJJOOOOOOOBBBBBCCCCTTUUKERRRRRRIIIIBBBBTTTTTTTTTLLLLMMJJJCCWWWWWWWW
QQQIIIIIIHHEBBTFFFFFFFFIIJJJJHHBBBBBBAAAOOOOOOCCBFFFFFFFGNIIIOOOOOORBBBIIIGGGOIVVVVVOOQQQQXXKKKKSSSSSSSQQQQQQ
RRRRHHHLLLLLLLZZZZBBSSSSSSNNNNNNNIHHHAOOOOXXXBBBBMMMMMMMPPPPAAAAAAAAAAZZZZZZZWWWWWWCCCCJJJJJJJJTTTJJTPPPYKKKKKKGGANNNNCRRRRRRRUUUUUUUUU
PPPPPPPJJJJJJHHHHHHHDDDGGIIIIIIIFEWXXXXXXDDTWWWGGGIIIIILLLLLLLXXXXXXXXX
DDDDDYYYYYYYYYBBBTTTTTTTJCCIIIIIPYUUUUUTTHHMMMMJJJJJMMOOEEEEPPPYYYYKYYYYYYYHHHEEEEEEEEZZSSSSSSVVVVVVVKKKKK
KUUULLKKUUTTTTVVGGFFOFFTTTHHHHHAAAAAAARRRRRRFFFZZZZZZWWWWWPPPWWWWNNNNNNN
XXXXXJJJTTTTTTRRRRCCSIIIIIICCAAAZZZYYYPPPUUUUUUUESSSSSSTPNNMMMMMMXXXFFFSSSSPPPPPMCCCRRRRVVVVVVKFFFEEEFHHHHHQSSSSSSSSS
KKQQQQQEEEENNNNNHHDDDDDDDDIHTTTDDGGGGGCCCEEQQQQQQNNNCCCCCRRRRRNNNNN
DDDDNNNNKKKKKKKEMMMMMLLNXCAVVVGGGGGGGJGGYYYYGGGGGGGG
JJRRBBBPPPPPXXXXXRRRRRRYYYYYPTTTBBSSSLFFIIIIIIIMMIIGDDDDVVCCCCCLLCCCCCCNNNNEEEETTTTTYYYYYOOGGGGVVVVVVVVVVQQQQQQQQ
CYYYYYYRRRRRJJJGOOOOOSSSSSSEIIIIIIDDDDDQUUTQTTTTTTMMMMMCCCCCCSSSSIIGGGLLKKBXXBBEEEEGXXXXBBBBQQQQQAAAAAAAAVVVVVVUUUQQQQQQQQQDDDDRRGGGGGGGUUUU
IIIBHSSSSVVVPPPKKKKKKZHLLGGGGEEIIIJJJJJWWWYYYYYYYYYEEXXXXXXTTTTTXXXUUUKKNNNNNZJUFFFQQQQQOETVVVVVVVFFFFZZYYYHHHHHAFFFFFEEEEEEECBDSSSSSSSSGGPPCCCCCCCGGG
UUUUFFPPPEEKKKKKKKGGGGGJJJJJJJYXXXXXECCCCCNNNNNWWSSSSSBBYYYYYUSLLLLLLZZZZZHHHEEEEOOOOOOOOJJJJJJJPPPPNNNNNNEEEEEEE
SSMMMMMMMMPPPPPPPPUJVVVRRQQQQQNXAAAAYYYFFFFFFFBBBBBBBBOOOO
ZZZZSSSSSSJJJJJJDDDHHHHHRRRRRRKKKKKAAAAHNFFFFSSFFFYTEEDDDHHQQQIXXGGGGBBQXXHHHHFFJJJIIIIIWWWWWWWWWWWWQQAAAAAAVVVVVVVVVRAAAAAAARRRRRRR
NNNNTTTTJJJJJJJJOOOOQQQQEEEFPPPPOOWWUUUUGGGGYEEEEEEGGGGGGNNNNNRRRRJHAAWWWQQSSSSSDDDFFFFFFFFQQQDDDUUUUUUUUJJJJ
XXXLLLAAHHHBBBBIIEEEEEEVVVVVKKKKKKKPPPPPIIIVVZPPFFWWWWWIIIIISSSSPPPJJJJBBBVVBBBBBBBBCOOOOXXXXXXXXMMMMDDDDDIIIIIUUUUMZZZKKKKKKKKJJJJJTTTTTWWWWWWWW
JZIIIUUUUUUUXXXPPPPSSSSSSCNTTTTTTTMMMMMMGDKKOOOZZZQQQGGGGKKKKKKKKDDXBBEEEEEOOOOOOO
MMMMMQSSSQEWWWWTTTTTTTAAAAAHDDDDDDNNQQQQQPPKKYOEEFFFFFFFFRRRRRRRLLLLL
AAAARRRRRRHHHRRRRRRRRHHHHHHHYYYSGGGTTEEEYYLBBBBBBBOOOOOOVVVVGGGGGVKKKKKSXXXXXRRRRRRRR
CCCCCZZZZZZZAAAOOOOOOOOGGGGGGGRRRRRSSSSSCCCFFFFFTSTTTTWIOOOXXXXXXXXYYYAAAAAAEHHHHHHNNNNNYYYKKJJJJJJJRRRRRR
QQQQQQWWDDDDDDUUUUUWWWWWWGGGGSSSSSSUUUUUUUUXXXXQQQHHHHHHHHZZZZZJMMMMMAAANNDDDSSSSSSSAAAAAAAAUUZZZRRLLLLLLLLNNCCCJJJJJFFQQQQQQQQZZZ
RTTTKDDDJAANQQQOOOOJIIIRRRRRREZZZGWWWWWXXGGGGGGGAASSSSSSSKKGGGGGLLTTTTJJJJJJBBBBZZZKKKKFFZZZIIIIDDDRRRBBBBBDDOOOOCDDDDDDDCVVRRRRIDDBBBBBBBGGGGGGGGG
YZUUEEEENNNNNNNNXXXCCVBAAAACCCCCCYPRRRRMMMMCCYYYYYYYY
DDDDDDDDRRRMMMMMSSSEEEEEBKKXXXQQQQQQFFFFBHHHFFFFFFSBBBBBBBBRRRRRRRHHHHHHEEEEEEEBBBBDDDDDDOOOOOO
LLLKKKUUUUUUUWWWWWWSSSTTTTTTGGSCCCCOOPPNNNJJJJKKKOOOOOSSSSSS
PPPPPJJJJWXXXXXXXUUUUUVVVVCCCCUULAAAHHHVVJJJJJJLQQQQEEEEEEEELLLAAAAANNTTIIIVVVVVXXXXXTTTTTTGGGGGGGGGGGGGG
COQQQQGGGGGGEEEEKKKIIIIIIBBBBBBBYYYPQQNVVVVVVVVOVVVVVVVVV
QQQQQQQRCCCUUXXNJJOOLXXXNNNBBBNNNNNNHHHHHMMMMMZZZZZZXXXXXXXXX
WWWWWWWWVVVVVBLLLLLPQQQBBBPPPPUUUUUUUAXMMMMMMMVRRRRRRRRZZZJJJJPPPUUUYYUUUUUUUOOOOOOOO
GGGGGGGUUUAAAOOOOOFFFFFFFRHHHHKKKFFFFVVVVVVVVBBBOJXXXXMMMMMMM
UUUUTTTTTQQQQQQQQNNNNNNNWWVBXXXXXXHHHHDDDDDDDIIOOOUALLLLLKQQQQUEESSSSSSSCCCCCVVVVVVVVWWWOOOFFIIIIIOOOOOUUNNNNNNNNNHHHRRTTTTTAAMMMMMIPPKKKKKKKKK
SLLLLLCCCCCCYYIIIIIIIICCCNQQQXXXXAAAAAAWJJJJJJJCCCCMMMMMZZQQYCCCCCCCDSSSSSGGGLLLLLLL
VVVVVSSSSXXXBBBBOOOXVVVVVVUTHHPWWWWTTTJJJLLLLLLPPPPPPOOUUUUULHHHPPPPPIIIIIIIVVVRRRRRRAAZZZZZZZZZ
YSSFFFFVVBBBBHHMMUXXKKKKIIIIIIGGGGRRRRRRESSSSSSFFFFFFFFFFFFFUUCQQDBBBQIIPJZZZZZZYYYYYYTTTTT
VVVRRRRRRRRJJFFFFFFQQLLLCCCRRRRRROOOOORRRRRRRCBBBBBBBBBGGGGGGLLLLLFFFFEEELLLLWWPPPPMMMAAAAAASSSSSTTNNNNNNPPPPPMMMMMMMMMNNNNNNNN
MDDDFFFFFFVNNNNNNNNFFUUUTTTZZZZZUUUYYYYYYYZZZZZZAAAXXXBBBBBBBUUUUUWWWWWXXXXZUUUUUUUUYYYYYYYQQXXLLLNNNIIIIIIII
TTTTBBBBFFAAQQQCCCCCCVYYUUURRGGGGGGGOOOOOMMMMMMIIIJJJJJJJWWWWQWWWMMVZZZZZZKKKKOOOOAAAAAAAA
HAAAARAADDDDBZZZZBYYFFFSSSSSHHHQQAAYRRRRRRREEEEEECCCCCKKOOOOVVVSCCRRRRRRRRPPPUUUUUNNUUUUUUUVKRRRRIIUUUUUUUTTTTTTTTFFFUUFFMMMMVVVVVV
AAAAAAAAWEEYJSSKKONNNNNDOOOFFJJJTLLLLLLLLLVVVCCCCCCCCGXXXXDDNNNNNUUGLLLLDNNNNNQQQCCCCCYYYYYYYOOOOOHHHHHH
FFFRRRRRFFFQQZZZYYYYYWRRRRHHHOOLLZZZZZPSSSRRRRRBBKKKKKKLWWAAZZZMBBBBLLLLLLLLPPXXXXHBBBBBBTTTTT
PJJGGGGGGGQQQQQQQQQGQQQQAAAAAAAAAARVVVVVVVWWWWWWVVXXKKKKKKKKAAAAAAAFFBBFYYYPPPPPKKKMMMMMMMAIOOOOOOMMXXOOBYCCCCCCCCCOOOOAAAEEXXXXXXXYYYYYMMMMM
XXXXAAAAAAAOOVVIIVVHHHHZZZZZZAAAOOEYYYYWWWWDDKHHSSSSSSSSSLLRRRRRDDDDDQQQQQQQWWWW
QQQSPPQQRHHHHHCCCCCCCUUUZZAAAAAUUUUUUUTTTTEEEEEEEE
JJJIOOOOOOBZZBBBBBBEEXBRRIIIIIIOOOOOTTTTTTTTSSSSSSSPPHHHHHGGGQYYYYYIIIIIIIICCCCCCEEMMMMBBNGGGGGGGGGGXXIUUUUUBBBBBBBBPPPPJJJJJHHHHHHH
PPPBBBYTTTTSSHNNNNNNBBBBBBFFFXDDHHHCCGGOOOYRRRRRSSSSSSKKKXXXGGHHHHHHHEEEKKKKKPPPPPPPPP
TTTNNNNGGGGGGGGKKKAAAAYTTOOOOOOORRRREEADHHHJJJJJJJJJOSSSSKKKKOOOOXTTTYYYYUUUTTTTTTTCCPPCCCCCCCNNNNNKUUUUUUOOOBBBBBPPDDDDFFFFFFFOOOOOYYYYYYYYY
ZSQQJJJJJJTTGGGGXIIIIGGOOOOOOMMMQQQTTTTTTPUUWRRMMMYYYYYYNZZMZKKKKWWWDDJVVSSSSSSSGGGGJAAAAAMMMMMMYYMVVVHHHHHHHHH
IIIIIIIOOOXXXXXXXBBBDDDDDDZZFFFFFFFYYACCCCCCJJJJJJJZBBBBBBBBB
WWWWFFFFXXXXQQQQIBBBBBKKKKQQQQQQQQTTJJVVVVDDYYYYVVVVVVEEEEYYYYCCCCKKKKTKKKKKKUUUUGGGAAAAAAMMMMMMMNNNNNNNXPPCZZZZZBBBBBBBBB
MMMGGGXXZZZZZZZWWWWWQQQBBTJJNNJJJDQQDDDDDDWWWAAWWWWWWWHHHHHHZZZZEEEEEEYYYYYSSSFFFFFFFFGGG
FFFFFFIQQUUUUUUVMMMWWMMMMMMMCCCCCCCAAAAAAOOOOOOOKBBBBBBBBEEUUUUKKKKIIIIIIIISSXXXJJJRRRRRRKVVVVVAAAAZTTTTTTRRRRRRAAAAAUWAANNNNNNNNN
SSSSSSSSYYYJHHAAAAHHHHJJJJJJJJYYYGGGOOOOOOCCCPPPPPPKKKTTTBBBBIIIIIIIXKKSSSSSSSCFFFEEQQQXXXIIIIIIIINNNNNNN
XPPPPPJJJJDDIAAAAAJJJPHHCCCCLLLLESSSSSSREEEAAALLPPPPMMPPPQQQQEEEEEIIIIUUFFFFWWWJZZZZZZZIPPPPPPKOTTTRRRRRYYYYXXXOOOUJBBBBBBBBBBBBNNNNNNNHHHHHHH
EEEEOOOOLNNXSSSNNCCCCCCXHHHHHHHXXXXNNNNNDDDDBOOOOOOOOIIPPMOMVJYYYFFFFPPPPUUIIRRKPPPPCCCCCNNNNNNQQQQQQQPPPPPPIIIITPXCCWWWWWWWWW
UUUUUNNNHHIIDDDDCCZZFFTTTTTTOOOOOMMFFFFFFVVVUYPHHHHHHHPPIIIIIXGPPPPPPBBBB
AACCVVVVVVVVVVVVVVAAAAAARYYGHHHHHHHHHYYYWWWWWWWWHHHHHHCCCCCMUQQQQQIIIIQQVVVVVDDDDAAAWWWDDDDDDDFFFFFFAAAAWWWWWWWEENZOOOOOOOOO
JJJJJJJJBRRRRRRRRGGGGGGVVVVUUUUUUUUJJJTAAARRRXXXXXXXCCCCCCCGGGGGKOOOOOOXXXXXXMMMMMM
TTTTTTTDDDUVVVVVVVPPPPLLLLLLIIIIBBHHBBBCCCTTWAAATTTTTTTSSSSCCCCCEEEFFFFYXXEFFFFFFDNNNNNFFFFFFFFF
WWWWUUZZZZZZKKKKKKCCCCCTZZZZQQQQQEEEKKCAAAAAAAHHHHHHDDDDMMMMZZZYYLLLTTTTTTTBBBBBJJJZJJEJJJAAAAAYYEEEEETTTCWEEJUUHHHAAADDDDDDDKKKKKLLLYYYYYTTTMMMMMMMMM
QQQQQQAWWWWWBVVVVVVVEEEEEQQQQQVRRRRRRRUUUMMLLLLDDDLLLLAAAAAAZMMMNNNDDDDDDSSSSSSSSSSSSJJJJJZZZZZKKKKKKEEEEEESSCCCCCCCCMMAAABBBBBXXOOOOOOOOO
NNDDCZZZZPPPPVVVVUUUVVWWWWGHHHHHHJJJJJJSKKKKKKRRRRRRRRDDDDCCCCCCCCQQQ
PJJZZZZZZCZZZZZZZKKKSSSSSSAAAIIKKLLLLDPPPPPPPWWAAAAAAAAA
PPPBBBBBFXKKIIIIIIIIIIIIIIYAAAAAMMMMOOOOOOMMMMMCCCCSSSSZZZZZZZZZKKKKKNNPPPPPPPLLLLLLLLZZZZZOOOOOMMMMMMMNNNNNVVVVIIIIIII
TRRRRRVVVVUUQQQRRRRRRWWWWWRRVITTVMMMQQIIIIIIIHHNNNNSSSSSSSSS
AAAAAAAPUUUUUURRRRKMMMMMMMUKEEEEEEZXIIDDDDDDDDDDDZGGGGGGGGGGDDDDRRRRQQQQQIIIIVVVVVMMOOOMWWWWWWWUUUFFZZZZZZZMMMMFFFLLOOOOOHHPPPXXXXXXXXXX
CCCCCCCOOOCCCCCCZTTVVVAAAAAFFFFVLLLLLLNNNRRRRRRRRRNNNNNNNIIIYYYYTTTTBBBBBBBLLLLCCCNNNNNNNNN
LLLLLLLLIIIUUUUUYYACCCOORRRJJJJJJGGGGGGTMMMNNNNNNXXRRSSSSSSSSSSSSDDDDDZZZZZGGGGGGGGGEEECCCEWPPPPPPPPP
RRRVVVCCCCCMMMBBBBBBBBCCCTFFFFSSSSSSHHHHHHHNAAAAAJVVVVVMMMMWWWWWWOOOQNNNNNNXXXXBBBBBBBBBCCCCCCZQQEEEEEMMMMMMMM
LLWWQQQLLLLLUUUUULLLLLLTTTTUPPAAAHCCVVFVBBBBBHHHHKKKKKBBBAUUUUOOOOAAAAAAASRRRIYYYFFFFPPPPPPP
KKKKKKNNVVVAAXXXXXGGQQQQQQDDDDZZZZZZZZZHNNNNNNNOOOOOOJJZIIIIFFFRRRRRVVVVEEEGGGBBBBBNNNNNHBBBIIIIVVVVVV
INMMMMMMMWWWWWWWWRRUUUUUUUJJJBBBMMMMMMMMZEEEEEERRRRRBBBTNQQQQQJDBBBBBBAATTTTWWWGGGZZFFFFFFFF
FFFNNNNNNNIIIIIAAAAAAAWWWJJJJJYYYYKFFFFFIIIIIIKKKKWWWWWWRRMMMMMMTTTTTTT
RRRRRRALLLLJJJLDDDDDDDDLMMMHHHHHHHHZZZZZYYYYYYYYZZZZYBBBGGGGGGGGQQQAAAAAAAAAAAA
CCMMMMMMMUUUUUUUUUUUJJYYYYYYYYDDDDDACCCCCCCCCSSEEEBXXXXXXXXXRQVZVVVRTTEEEIIIZZHHHHHNNNNJJJJJJCCCCCLLLLLXXXXXXXXQKKKPIIIIIIIII
VVOOYYWWWWWYYORGJJJJTTTAAAALLLYYYYYYPPESTTTTTTTKKKKKKJJJJJJJ
RCCCWWWWWAXXXXXXXIIIIIIIEEYYYYYIIIMMMMMMMMMOOOOOOOYYYYYYYEBBBBKNNNNNNNVVTTEEEEEPPPPPPPP
KKZPPNNHHDDDDFFFFIICCSSSSSPPPPPPQQQQQQQQUIILLZZZZZZZZZZZZNNWWWWWWWWWIITNNNYXXXXXXXXX
CCCCCCCCCHHHHHHWWWWWWIIINNNNNNXXXXXWWWWKKKKKKBBBTTXPPKKKKJJYYYYYYYTTTTTTT
NNNKNNNNNUUNNNNNYYYGGGGLLLLLLTTTTTGGWWWWWWWWQQQQQQQ
GUUUUCCCCCCCCJWWWOOOOOIIIIEQQQQQQQQQQQQQQQQSSSSMMMMXXNNNNNNKOOZGGGGIIWWWEEEEUUUUUUUGUUNNPBBBCCCCTTTTTTTTTTTTZZZZHHHFFFFTTTTTTTQDNLKKKKKKKKPPPPP
CCCCCXXXXXXXIIIIIIIIRRRUWWWWWWWSSSSSCCCCQQQQQQQQQX
LLLLLIIIWWWWXXXXXXXXXXXXSSSSKKFFPPPPPRRHHHHHEEEGGGOOOLLLLXWWWWWSVVVVVVVWWWWWW
ZZZZZZZZZSSSSSSSQQLLLLLLLIIIIIIDHHHQQBBBBBVVVVVRRRRRRRTXXXXXXXAAAAAAAAAAAAKKKKJJIRRRRBDDDDLYYYYJJJJJEEEEEEE
WWKKKHHHHIQQQQTTFFSPPNNNAAAAAARRRRRRCCCDDDDDWWWWGGGGGGKKVVSSSSSSSSS
FFFFFFXXXSSSSSAAAAADDDDDDDDIIPPPPPPPSSSSSSSKKKKKIXXXPPPPPPPSSSAAAAAAA
CXMMMMMMMAHHHIIIIITTTTTTTDXXXQQKJLLVVZZZDDXXOHHOSSSSSSMMMMMTTTTPPPPPPPPP
QQQQQZZZZZZQPUEXXXXXXXXXYSSOKKKWWWHHHOOJKKPPPNNNNNRBBPPPPPPPPGGGGZZZGGGWWWWWWWWEZZGGGGKVVVNNNNRCCCQQQQQQQQ
VVVVEEEEDDDSSSSSSSSMXNNIIIIXXXXXQQQQQQWWWWWWXXXXXXXXIIIIIIIWWRYYYDDZZZZZZZZZZZZUHHHHAAAAAYYYYYYYIIIZZZZZZOOOOOO
SRSSCCCUUUUUUZZLLLLZZERRRRMMMMCCCCDDOOOOORREEEEEECEAAAAAAAMMMMMMQQQQVUUBXXXXXPPPPLLLWWWWWWW
CCCVVVRRRRAABBBBBBBBKCCCCCOOOOOOPPPPPHHHHHDDDDDDNVVVRRRRCCRPPPSSSSSSSSZZZZZZZZZZZZZZJJJJJJJ
VVVVVUUUUUUUJJJJNNNNAAAAAYYYYDDDIIIBBBBBBCCCCCCSSSSNNNQQQAAAAAJJJJJJJJLLLLZZZZWWWWMMXXMYYYCCCCOOOAAAAAAAAA
DWWWWWWRRVVVLLQQQQQDDGGGGGGGYYXXJJJPPTTTTHHHHHHUUUPPPPPPPTMMMMMMMMLLLDDDDDDAAAHHHHFFFFFFKKKKDDDDGGGGGOOOOOODDYYYYYYNNNNNNNNDD
KKYYBOOOOONNEEECFFFHHHHFDDDDWWWWCCCCCQQQKKKKKKLLLLOOOOQQQQQQCCWPXWWWWWWWFFFFJJMMMMMMIIIIIIIHHHHHDDZZCCCCCCXXXXXXXXXCCCCQQQQQQ
OOOCCFFUVVVMMMWWWOFFFAAAANFGSSOOOOOOOONNNNVQQCJJJMMMMMMMMM
JJDDDDDDDDDAAAQPPPPPPPPPWWBBBBBCCCCCSSAXXUUUUJJJUUUZZZCCXXXXXVVUUUJJJBSWIIIIIIIII
VVVVVPPPPPPWWKKKCCCCCCCCUUUUUUHHYAAAWWBBHKKKKKKTTTTTTTTQQOVVUUUNNNLLEZZZZZZAAAAAVVVVVVVYYEEEEBIIIIWWWGGIIIIPAAAAAFFFFFFXXLRRRRRRRRR
LLLLJJJVVQQQQQQQQZZZZNNNRTHHNIGGGGBJJJJMMMMMPPPPPPTPCCCCCCVVVVFFFFYYYYDDRRHHHHHHHRRRUUUUUEENNNNQQQOPPPFFFFFFFDDDDDD
OOOOOOOOOOOMMMMMMMOOOBBBBBBMMMMMNNNGFFFTTTCCUUUUFFFFFNNNQQQYDDDLLLLLLCCAFFFFFFFFVVVRRRRAAYYYYYYYYBB

View file

@ -0,0 +1,18 @@
# importo dal file data.py le stringhe date
with open("data.py", "r") as f:
lines = f.readlines()
# definisco la funzione per convertire le lettere maiuscole nei corrispettivi numeri
def letters_to_numbers(text):
return [ord(char) - 64 for char in text.upper() if 'A' <= char <= 'Z']
# creo la variabile per la somma dei caratteri
somma = 0
# per ogni stringa in input (una per riga)
# lancio la funzione di conversione e sommo il numero di "celle di memoria"
for line in lines:
numeri = letters_to_numbers(line.strip())
somma += sum(numeri)
print ("Result: ", somma)

View file

@ -0,0 +1,50 @@
# importo dal file data.py le stringhe date
with open("data.py", "r") as f:
lines = f.readlines()
# definisco la funzione per convertire le lettere maiuscole nei corrispettivi numeri
def letters_to_numbers(text):
return [ord(char) - 64 for char in text.upper() if 'A' <= char <= 'Z']
# creo la variabile per la somma dei caratteri
somma = 0
# per ogni stringa in input (una per riga)
# lancio la funzione di conversione e sommo il numero di "celle di memoria"
for line in lines:
#numeri = letters_to_numbers(line.strip())
# calcolo lunghezza totale della stringa (senza a capo)
total_len = len(line.strip("\n"))
# calcolo del numero di lettere da tagliare
cut = int(total_len/10)
# calcolo del numero di caratteri da tenere
resto = total_len - (2*cut)
# definisco una variabile per ciclare solo fino alla lunghezza richiesta
l = 0
# per ogni riga (tolto a capo) eseguo la funzione per convertire la lettera in numero
for i in line.strip("\n"):
if l == cut:
l = 0
break
numero = letters_to_numbers(i)
# sommo alla variabile, la quota di numeri della prima parte di lettere
somma += numero[0]
l += 1
# sommo alla variabile la cifra numerica della parte centrale della stringa
somma += (sum(int(x) for x in str(resto)))
l = 0
# come per il for sopra, ma per le ultime cifre della stringa
for i in reversed(line.strip("\n")):
if l == cut:
l = 0
break
numero = letters_to_numbers(i)
somma += numero[0]
l += 1
print ("Result: ", somma)