Skip to content
Extraits de code Groupes Projets
Valider 1f5e6637 rédigé par EdouardParis's avatar EdouardParis
Parcourir les fichiers

zpzpolynome with p = 701

parent 241d02a7
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Pipeline #
......@@ -2,9 +2,10 @@ all:
mkdir bin
ocamlc -c polynome.ml
ocamlc -c simplepolynome.ml
ocamlc -c zpzpolynome.ml
ocamlc -c nums.cma main.ml
ocamlc -c nums.cma stats_big_int.ml
ocamlc -o bin/main nums.cma polynome.cmo simplepolynome.cmo main.cmo
ocamlc -o bin/main nums.cma polynome.cmo simplepolynome.cmo zpzpolynome.cmo main.cmo
ocamlc -o bin/stats_big_int nums.cma polynome.cmo simplepolynome.cmo stats_big_int.cmo
test:
......
......@@ -4,6 +4,7 @@
open Big_int;;
open Polynome;;
open Simplepolynome;;
open Zpzpolynome;;
(*big num avec simple variable*)
print_string "**********************************\n";
......@@ -42,3 +43,36 @@ print_string "\n";
print_string "diff\n naive_mul - karatsuba = ";;
print_string (P.print(P.sub naive karatsuba));;
print_string "\n";
module ZpZ = Polynome(ZpZCoeff)(SimpleDegree);;
(*base monomiale pour la construction du polynôme*)
let p1 = P.generate 4;;
print_string "P1 = ";
print_string (P.print p1);
print_string "\n";;
let p2 = P.generate 4;;
print_string "P2 = ";
print_string (P.print p2);
print_string "\n";
print_string "addition polynome:\np1 + p2 = ";
print_string (P.print(P.add p1 p2));;
print_string "\n";
print_string "naive multiplication:\np1 x p2 = ";;
let naive = P.naive_mul p2 p1;;
print_string (P.print(naive));;
print_string "\n";
print_string "karatsuba multiplication:\np1 x p2 = ";;
let karatsuba = (P.karatsuba_mul p1 p2);;
print_string (P.print(karatsuba));;
print_string "\n";
print_string "diff\n naive_mul - karatsuba = ";;
print_string (P.print(P.sub naive karatsuba));;
print_string "\n";
(* projet AP 2016 Edouard Paris*)
(*corps premier Z/pZ avec le nombre premier 701*)
open Big_int;;
open Random;;
module ZpZCoeff=
struct
type coeff = big_int
let print c = (string_of_big_int c)
let add c1 c2 = mod_big_int (add_big_int c1 c2) (big_int_of_int 701)
let sub c1 c2 = sub_big_int c1 c2
let equal c1 c2 = eq_big_int c1 c2
let is_null c = eq_big_int c zero_big_int
let mul c1 c2 = mod_big_int (mult_big_int c1 c2) (big_int_of_int 701)
let minus c = minus_big_int c
let generate i = mod_big_int (big_int_of_int (Random.int (701-i))) (big_int_of_int 701)
end
;;
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter