Pagini: [1] 2   În jos
  Imprimă  
Ajutor Subiect: 021 Invers modular  (Citit de 29325 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« : Decembrie 06, 2008, 19:50:23 »

Aici puteti discuta despre problema Invers modular.
Memorat
philip
Strain
*

Karma: 5
Deconectat Deconectat

Mesaje: 39



Vezi Profilul
« Răspunde #1 : Ianuarie 06, 2010, 21:49:50 »

Nu inteleg cum se calculeaza numarul de combinari. Daca stiti alt loc in care e explicata chestia asta, va rog sa postati linkul aici.
Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #2 : Ianuarie 07, 2010, 00:31:41 »

Daca puterea la care apare P in N! este mai mare care puterea la care apare in K!*(N-K)!, atunci raspunsul e 0 (rezultatul e divizibil cu P).

Altfel, calculezi a = N! % P, b = K! % P si c = (N-K)! % P, fiecare in O(N). Rezultatul e (a * b-1*c-1) % P, unde b-1 e inversul modular a lui b fata de P, iar c-1 e inversul modular a lui c fata de P.
Memorat

Am zis Mr. Green
philip
Strain
*

Karma: 5
Deconectat Deconectat

Mesaje: 39



Vezi Profilul
« Răspunde #3 : Ianuarie 07, 2010, 17:30:22 »

Asa da... e mai pe intelesul meu.
Abia acum am inteles si ce e de fapt inversul modular.
Memorat
popoiu.george
Vorbaret
****

Karma: 19
Deconectat Deconectat

Mesaje: 162



Vezi Profilul
« Răspunde #4 : Aprilie 14, 2010, 20:10:13 »

Am inteles ce este inversul modular, dar am cateva nedumeriri.

Pentru orice numar N>=P, N! % P este automat egal cu 0. Este asa sau gresesc ?

Cum mai calculez inversul modular daca a, b sau c pot fi 0.

Terenul asta e intr-un fel "minat" pentru mine, pt ca nu am cunostinte solide de aritmetica modulara.

Multumesc !
Memorat
alexandru92
Nu mai tace
*****

Karma: -191
Deconectat Deconectat

Mesaje: 496



Vezi Profilul
« Răspunde #5 : Aprilie 19, 2010, 12:39:27 »

Pentru orice numar N>=P, N! % P este automat egal cu 0. Este asa sau gresesc ?
Da, si este simplu de justificat. N!=1*2*3*...*N, daca N >= P N!=1*2*3*...*P*...*N => N! este un multiplu de P, deci N! se imparta exact la P.
Terenul asta e intr-un fel "minat" pentru mine, pt ca nu am cunostinte solide de aritmetica modulara.
Poate te ajuta asta.
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #6 : Iulie 19, 2010, 12:44:17 »

Se poate adauga la aplicatii si problema LKperm.
Memorat
razyelx
Client obisnuit
**

Karma: 0
Deconectat Deconectat

Mesaje: 82



Vezi Profilul
« Răspunde #7 : Noiembrie 22, 2010, 15:39:24 »

Daca puterea la care apare P in N! este mai mare care puterea la care apare in K!*(N-K)!, atunci raspunsul e 0 (rezultatul e divizibil cu P).

Altfel, calculezi a = N! % P, b = K! % P si c = (N-K)! % P, fiecare in O(N). Rezultatul e (a * b-1*c-1) % P, unde b-1 e inversul modular a lui b fata de P, iar c-1 e inversul modular a lui c fata de P.

daca N are valoarea 1000 cum calc fact? fac modulo n la un anumit interval de elemente?
Memorat
dutzul
De-al casei
***

Karma: 42
Deconectat Deconectat

Mesaje: 119



Vezi Profilul
« Răspunde #8 : Februarie 09, 2013, 18:53:33 »

hmm am citit despre teorema lui euler  si egaliatea aia a^(phi(n))=1 dar aceasta egalitate are loc doar cand n si a sunt prime intre ele .Daca au un divizor comun != 1 nu mai e valabila asta inseamna ca nu se poate afla inversul numarului? mersi anticipat
Memorat
PlayLikeNeverB4
Nu mai tace
*****

Karma: 212
Deconectat Deconectat

Mesaje: 721



Vezi Profilul
« Răspunde #9 : Februarie 09, 2013, 19:32:46 »

In cel mai rau caz incerci fiecare numar pana gasesti inversul (adica brute).
Memorat
klamathix
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« Răspunde #10 : Februarie 09, 2013, 19:35:11 »

Inversul nu exista daca a si n nu sunt prime intre ele.
Memorat
Andrei1998
De-al casei
***

Karma: 26
Deconectat Deconectat

Mesaje: 112



Vezi Profilul
« Răspunde #11 : Martie 30, 2013, 22:31:42 »

As avea si eu o intrebare. Daca se gaseste cineva binevoitor sa imi raspunda as fi foarte recunoscator:

Daca vrem sa calculam a/b (fractie) mod n, atunci:
a/b = a*inv(b)

In acest topic s-a scris ca inversul nu exista daca b si n nu sunt prime intre ele (intr-adevar 3/4 nu exista mod 7), insa, folosind formula de mai sus, avem ca:
9/3 (mod 6) = 9*inv(3, mod 6) (care, dupa cum s-a zis in topic nu se poate afla caci (3,6)=2)
Dupa logica mea insa, 9/3 (mod 6) = 3 (mod 6) (pe care l-am aflat  Think)).

Eu, daca l-as avea de aflat pe a/b (mod n) = x (mod n), as face asa:

a (mod n) = b*x+n*y (mod n)
(Impartim toti termenii la (a,b) si rezolvam de aici prin euclid extins (aflam x-ul si y-ul si inmultim iar cu (a,b))). Conditia de existenta a raportului ar fi b|a (nici aici nu sunt prea sigur, corectati-ma).

Mi se pare mult mai dificil de facut chestia asta daca avem a/(b*c). Contraziceti-ma daca gresesc (sau dati-mi o solutie mai simpla decat a mea).

P.S.:Rege nu e Combinari modulare, greseala mea.  Embarassed
« Ultima modificare: Iunie 28, 2013, 19:12:41 de către Constantinescu Andrei Costin » Memorat
alexandru.hulea
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« Răspunde #12 : Septembrie 02, 2013, 19:14:27 »

Imi poate explica si mie de ce apare incorect la raspuns pe testele mari? Ca banuiesc ca ultimele 3 teste sunt numerele mari. Am testat si eu pe cateva numere mari si da bine. Cred ca e ceva de conversie, dar nu reusesc sa ma prind ce.
Memorat
AlexandruValeanu
Vorbaret
****

Karma: 29
Deconectat Deconectat

Mesaje: 167



Vezi Profilul
« Răspunde #13 : Septembrie 02, 2013, 20:41:07 »

Salut!
Dupa cum probabil trebuia sa vezi din solutia oficiala( http://www.infoarena.ro/job_detail/227473?action=view-source ) in functia phi daca N este diferit de 1 ( asa NU insemnand ca e prim neaparat ) afisezi
Cod:
if ( B != 1) return ( p/B * ( B - 1 ) );
nu N-1. Cu aceasta modificare sursa ia 100p.

PS: nu mai calcula in conditia de la while sqrt(B); ori calculezi sqrt(B) inainte de while ori pui i*i<=B ca in sursa oficiala.
Memorat
alexandru.hulea
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« Răspunde #14 : Septembrie 04, 2013, 00:06:38 »

Multumesc, de-abia acum cand ai zis m-am prins si eu ca B poate scadea sub i*i si totusi sa nu ajunga la 1 , pentru B un numar neprim.
Memorat
manutruta
Strain


Karma: 5
Deconectat Deconectat

Mesaje: 24



Vezi Profilul
« Răspunde #15 : Ianuarie 31, 2014, 01:07:05 »

Salut!

Imi spuneti va rog ce am gresit ? Am folosit smenul cu ridicare la putere in timp logaritmic, pentru ca nu stiu prea bine euclid extins.

Sursa mea:
http://www.infoarena.ro/job_detail/1095424

Multumesc anticipat,
Manu.
Memorat
mathboy
Moderatori infoarena
Nu mai tace
*****

Karma: 150
Deconectat Deconectat

Mesaje: 259



Vezi Profilul
« Răspunde #16 : Ianuarie 31, 2014, 01:54:49 »

In enunt zice ca pentru 60% din teste N este prim, deci daca ai folosit doar ridicarea la putere in timp logaritmic nu ai gresit nimic. Spor la invatat metoda cand N nu este prim. Smile
Memorat
manutruta
Strain


Karma: 5
Deconectat Deconectat

Mesaje: 24



Vezi Profilul
« Răspunde #17 : Februarie 01, 2014, 12:25:40 »

Nu stiam ca functioneaza numai cand N e prim. Se poate fara Euclid extins cand N nu e prim ? Sau trebuie 'musai' sa invat si Euclid extins ?
Daca se poate fara Euclid extins, imi dati va rog un link de unde sa il invat ?

Multumesc anticipat.
Manu.
Memorat
mirceadino
Strain


Karma: 13
Deconectat Deconectat

Mesaje: 13



Vezi Profilul
« Răspunde #18 : Februarie 01, 2014, 13:08:34 »

Al doilea paragraf de la indicatiile de rezolvare te-ar putea ajuta.
Pentru calculul lui (indicatorul lui Euler), vezi aici.
Memorat
dutzul
De-al casei
***

Karma: 42
Deconectat Deconectat

Mesaje: 119



Vezi Profilul
« Răspunde #19 : Februarie 24, 2014, 17:39:49 »

Am vazut ca in sursa de la explicatii la algoritmul lui euclid se foloeste operatorul % pe numere negative , is si eu curios cum merge. Eh?
Memorat
NicuCJ
Strain
*

Karma: 6
Deconectat Deconectat

Mesaje: 44



Vezi Profilul
« Răspunde #20 : Martie 25, 2015, 20:44:20 »

Am o intrebare, folosesc invers modular ca sa calculez Aranjamente(N, K) % 666013. Factorialul imi da la un anumit moment % 666013 valoarea 0, si deci Factorial[N]*invmod(Factorial[N-K]) va da 0. Dar daca as avea, sa zicem A(666015, 1) % 666013, raspunsul ar fi 2. Poate cineva sa imi explice va rog de ce? Very Happy Multumesc anticipat.
Memorat
PlayLikeNeverB4
Nu mai tace
*****

Karma: 212
Deconectat Deconectat

Mesaje: 721



Vezi Profilul
« Răspunde #21 : Martie 25, 2015, 22:51:33 »

Da 0 pe parcurs doar daca N >= MOD. In acest caz poti aplica http://en.wikipedia.org/wiki/Lucas%27_theorem.
Memorat
k_ounu_eddy
Vorbaret
****

Karma: -104
Deconectat Deconectat

Mesaje: 161



Vezi Profilul
« Răspunde #22 : August 25, 2015, 18:53:59 »

Nu mi-e foarte clar cum calculam phi.
Cu formula aceasta?(vezi atasament)
Nu prea seamana cu ce face sursa oficiala...
Multumesc
Memorat
AlexandruValeanu
Vorbaret
****

Karma: 29
Deconectat Deconectat

Mesaje: 167



Vezi Profilul
« Răspunde #23 : August 26, 2015, 19:07:22 »

Este fix formula aia. Doar ca nu inmulteste cu (1 - 1/p) ci cu (p - 1)/p ceea ce este fix acelasi lucru.
Memorat
lucametehau
Strain
*

Karma: 1
Deconectat Deconectat

Mesaje: 33



Vezi Profilul
« Răspunde #24 : Mai 02, 2017, 12:58:08 »

In functia din solutia oficiala apare ca parametru &x.
Ce inseamna? Eh?
Memorat
Pagini: [1] 2   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines