La Fattorizzazione e il calcolo delle probabilità Di Cristiano Armellini ([email protected]) Supponiamo di considerare due eventi A, B tali che P(A) = 1/m, P(B)= 1/n e che A e B siano eventi indipendenti tra di loro. In base al calcolo delle probabilità possiamo scrivere: Mentre Quindi sostituendo e svolgendo le opportune semplificazioni ho che: 0 1 1 1 1 1 Quindi ho che 0 1 Ma questo vuol dire che se poniamo p = mn, esiste un d > 0: 1 Ovvero: 1 0 Che ha come soluzioni: 1 1 4 2 E che implica che 1 2 e d è un numero pari supponendo m, n dispari Ecco allora una possibile implementazione per trovare i fattori interi del numero p = nm scritta in linguaggio C++. #include <cstdlib> #include <iostream> #include <math.h> using namespace std; int main(int argc, char *argv[]) { double i, d, x, p; long k; i =0; cout << "Inserisci il numero da fattorizzare "; cin >> p; d = -int(2*sqrt(p))+1+p; x = (1+p-d-sqrt(pow(1+p-d, 2)-4*p))/2; do{ x = (1+p-d-sqrt(pow(1+p-d, 2)-4*p))/2; d = d-1; i = i+1; } while (floor(x) != x); cout << x << "\n"; cout << "passaggi" << i << "\n";; system("PAUSE"); return EXIT_SUCCESS; }