Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Bitnami MediaWiki
Search
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
4092 - cate
(section)
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Explicatie== valideaza_datele(cerinta, numar_teste, teste): Această funcție primește ca parametri cerința de rezolvat (cerinta), numărul de teste (numar_teste) și o listă de teste (teste). Ea verifică dacă datele introduse sunt valide conform cerințelor impuse. Mai întâi verifică dacă cerința este 1 sau 2 și apoi verifică dacă numărul de teste coincide cu numărul de teste introduse în listă. În cele din urmă, se verifică dacă valorile a și b din fiecare test sunt în intervalul [1, 1000000]. Dacă datele sunt introduse corect, funcția returnează un mesaj de confirmare, altfel returnează un mesaj de eroare. rezolva_cerinta_1(teste): Această funcție primește ca parametru o listă de teste (teste) pentru cerința 1. Pentru fiecare test din listă, funcția sortează valorile a și b și calculează diferența dintre rădăcina pătrată a lui b și rădăcina pătrată a lui a-1. În cele din urmă, rezultatele sunt stocate într-o listă și returnate. rezolva_cerinta_2(teste): Această funcție primește ca parametru o listă de teste (teste) pentru cerința 2. Funcția calculează, pentru fiecare număr între 2 și 1000000, dacă este prim sau nu. Această informație este stocată într-o listă de booleni numită numere_prime, în care valoarea True indică faptul că numărul este prim, iar valoarea False indică faptul că numărul nu este prim. De asemenea, funcția calculează un prefix-sum pentru această listă. Acest prefix-sum se numește prefix_suma și este folosit pentru a calcula rapid câte numere prime sunt într-un interval dat. Mai întâi, pentru fiecare pătrat al unui număr prim, se pune o valoare de 1 în prefix_suma, indicând faptul că acel număr prim se află în intervalul [pătratul lui i, 1000000]. Apoi, pentru fiecare număr între 1 și 1000000, se adaugă valoarea precedentă din prefix_suma la valoarea curentă, astfel încât prefix_suma devine un prefix-sum pentru numărul de numere prime din intervalul [1, i]. Pentru fiecare test din listă, funcția sortează valorile a și b și calculează diferența dintre prefix-suma lui b și prefix-suma lui a-1. În cele din urmă, rezultatele sunt stocate într-o lista Funcția main este funcția principală a programului, care coordonează executarea acestuia. Ea verifică dacă programul este rulat ca script, sau este importat ca modul, prin intermediul instrucțiunii if __name__ == '__main__':. Dacă programul este rulat ca script, atunci această instrucțiune va fi adevărată, iar codul din interiorul acesteia va fi executat. În acest caz, se deschide fișierul de intrare "cate.in" pentru citire, se citește prima linie pentru a obține cerința (cerinta) și numărul de teste (numar_teste), iar apoi se citește fiecare test și se stochează în lista teste. Aceste valori sunt folosite pentru a apela funcția valideaza_datele(cerinta, numar_teste, teste), care verifică dacă datele introduse sunt valide conform cerințelor impuse. Dacă datele sunt valide, atunci se apelează funcția corespunzătoare pentru a rezolva problema, fie rezolva_cerinta_1(teste) sau rezolva_cerinta_2(teste), în funcție de cerință. Rezultatele sunt stocate în lista rezultate, care este scrisă în fișierul de ieșire "cate.out", iar apoi se afișează un mesaj de confirmare a introducerii corecte a datelor. Dacă programul este importat ca modul, atunci instrucțiunea if __name__ == '__main__': este falsă, iar codul din interiorul acesteia nu va fi executat. În acest caz, funcția main poate fi apelată din alt modul, pentru a rezolva problema cu datele date în parametrii funcției.
Summary:
Please note that all contributions to Bitnami MediaWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Bitnami MediaWiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Toggle limited content width