亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gf2xfactoring.cpp

?? 一個比較通用的大數運算庫
?? CPP
?? 第 1 頁 / 共 3 頁
字號:

#include <NTL/GF2XFactoring.h>

#include <NTL/new.h>

NTL_START_IMPL


long IterIrredTest(const GF2X& f)
{
   long df = deg(f);

   if (df <= 0) return 0;
   if (df == 1) return 1;

   GF2XModulus F;

   build(F, f);
   
   GF2X h;
   SetX(h);
   SqrMod(h, h, F);

   long i, d, limit, limit_sqr;
   GF2X g, X, t, prod;


   SetX(X);

   i = 0;
   g = h;
   d = 1;
   limit = 2;
   limit_sqr = limit*limit;

   set(prod);

   while (2*d <= df) {
      add(t, g, X);
      MulMod(prod, prod, t, F);
      i++;
      if (i == limit_sqr) {
         GCD(t, f, prod);
         if (!IsOne(t)) return 0;

         set(prod);
         limit++;
         limit_sqr = limit*limit;
         i = 0;
      }

      d = d + 1;
      if (2*d <= deg(f)) {
         SqrMod(g, g, F);
      }
   }

   if (i > 0) {
      GCD(t, f, prod);
      if (!IsOne(t)) return 0;
   }

   return 1;
}


void SquareFreeDecomp(vec_pair_GF2X_long& u, const GF2X& ff)
{
   GF2X f = ff;

   if (IsZero(f)) Error("SquareFreeDecomp: bad args");

   GF2X r, t, v, tmp1;
   long m, j, finished, done;

   u.SetLength(0);

   if (deg(f) == 0)
      return;

   m = 1;
   finished = 0;

   do {
      j = 1;
      diff(tmp1, f);
      GCD(r, f, tmp1);
      div(t, f, r);

      if (deg(t) > 0) {
         done = 0;
         do {
            GCD(v, r, t);
            div(tmp1, t, v);
            if (deg(tmp1) > 0) append(u, cons(tmp1, j*m));
            if (deg(v) > 0) {
               div(r, r, v);
               t = v;
               j++;
            }
            else
               done = 1;
         } while (!done);
         if (deg(r) == 0) finished = 1;
      }

      if (!finished) {
         /* r is a p-th power */
         long p, k, d;
         p = 2;
         d = deg(r)/p;
         clear(f);
         for (k = 0; k <= d; k++)
            if (coeff(r, k*p) == 1)
               SetCoeff(f, k);

         m = m*p;
      }
   } while (!finished);
}
         



static
void AddFactor(vec_pair_GF2X_long& factors, const GF2X& g, long d, long verbose)
{
   if (verbose)
      cerr << "degree=" << d << ", number=" << deg(g)/d << "\n";
   append(factors, cons(g, d));
}

static
void ProcessTable(GF2X& f, vec_pair_GF2X_long& factors, 
                  const GF2XModulus& F, long limit, const vec_GF2X& tbl,
                  long d, long verbose)

{
   if (limit == 0) return;

   if (verbose) cerr << "+";

   GF2X t1;

   if (limit == 1) {
      GCD(t1, f, tbl[0]);
      if (deg(t1) > 0) {
         AddFactor(factors, t1, d, verbose);
         div(f, f, t1);
      }

      return;
   }

   long i;

   t1 = tbl[0];
   for (i = 1; i < limit; i++)
      MulMod(t1, t1, tbl[i], F);

   GCD(t1, f, t1);

   if (deg(t1) == 0) return;

   div(f, f, t1);

   GF2X t2;

   i = 0;
   d = d - limit + 1;

   while (2*d <= deg(t1)) {
      GCD(t2, tbl[i], t1); 
      if (deg(t2) > 0) {
         AddFactor(factors, t2, d, verbose);
         div(t1, t1, t2);
      }

      i++;
      d++;
   }

   if (deg(t1) > 0)
      AddFactor(factors, t1, deg(t1), verbose);
}


static
void TraceMap(GF2X& w, const GF2X& a, long d, const GF2XModulus& F)

{
   GF2X y, z;

   y = a;
   z = a;

   long i;

   for (i = 1; i < d; i++) {
      SqrMod(z, z, F);
      add(y, y, z);
   }

   w = y;
}


long GF2X_BlockingFactor = 40;

void DDF(vec_pair_GF2X_long& factors, const GF2X& ff, long verbose)
{
   GF2X f = ff;

   if (IsZero(f)) Error("DDF: bad args");

   factors.SetLength(0);

   if (deg(f) == 0)
      return;

   if (deg(f) == 1) {
      AddFactor(factors, f, 1, verbose);
      return;
   }


   long GCDTableSize = GF2X_BlockingFactor;

   GF2XModulus F;
   build(F, f);

   long i, d, limit, old_n;
   GF2X g, X;


   vec_GF2X tbl(INIT_SIZE, GCDTableSize);

   SetX(X);

   i = 0;
   SqrMod(g, X, F);
   d = 1;
   limit = GCDTableSize;


   while (2*d <= deg(f)) {

      old_n = deg(f);
      add(tbl[i], g, X);
      i++;
      if (i == limit) {
         ProcessTable(f, factors, F, i, tbl, d, verbose);
         i = 0;
      }

      d = d + 1;
      if (2*d <= deg(f)) {
         // we need to go further

         if (deg(f) < old_n) {
            // f has changed 

            build(F, f);
            rem(g, g, F);
         }

         SqrMod(g, g, F);
      }
   }

   ProcessTable(f, factors, F, i, tbl, d-1, verbose);

   if (!IsOne(f)) AddFactor(factors, f, deg(f), verbose);
}




static
void EDFSplit(GF2X& f1, GF2X& f2, const GF2X& f, long d)
{
   GF2X a, g;
   GF2XModulus F;
   
   build(F, f);
   long n = F.n;

   do {
      random(a, n);
      TraceMap(g, a, d, F);
   } while (deg(g) <= 0);

   GCD(f1, f, g);
   div(f2, f, f1);
}

static
void RecEDF(vec_GF2X& factors, const GF2X& f, long d)
{
   if (deg(f) == d) {
      append(factors, f);
      return;
   }

   GF2X f1, f2;

   EDFSplit(f1, f2, f, d);
   RecEDF(factors, f1, d);
   RecEDF(factors, f2, d);
}
         

void EDF(vec_GF2X& factors, const GF2X& ff, long d, long verbose)

{
   GF2X f = ff;

   if (IsZero(f)) Error("EDF: bad args");

   long n = deg(f);
   long r = n/d;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区久久| 麻豆成人av在线| 91视频在线看| 中文字幕综合网| 色综合天天综合网天天看片| 悠悠色在线精品| 欧美日韩激情一区| 久久国产尿小便嘘嘘尿| 国产校园另类小说区| 不卡一区二区三区四区| 亚洲一区视频在线| 欧美日韩精品三区| 久久成人麻豆午夜电影| 欧美国产精品中文字幕| 欧美中文字幕不卡| 日本亚洲三级在线| 国产蜜臀av在线一区二区三区| www.一区二区| 亚洲大片一区二区三区| 欧美成人bangbros| 成人小视频免费在线观看| 亚洲精品久久久久久国产精华液| 在线播放日韩导航| 国产黄色91视频| 亚洲精品免费看| 欧美va亚洲va在线观看蝴蝶网| 成人免费看片app下载| 亚洲电影一级片| 久久亚洲二区三区| 欧美中文字幕亚洲一区二区va在线 | 亚洲第一主播视频| 精品国产乱码久久久久久老虎| 97久久超碰国产精品电影| 奇米精品一区二区三区四区| 国产精品视频第一区| 精品1区2区3区| 成人综合激情网| 午夜激情一区二区三区| 国产精品久久久久7777按摩| 日韩一级片网站| 一本色道久久综合精品竹菊| 韩国理伦片一区二区三区在线播放| 亚洲色图欧洲色图婷婷| 久久亚洲欧美国产精品乐播| 9191成人精品久久| 91在线观看免费视频| 激情欧美一区二区三区在线观看| 一区av在线播放| 国产精品久久久久久久久免费丝袜| 91精品国产aⅴ一区二区| 91亚洲国产成人精品一区二区三 | 美腿丝袜亚洲综合| 亚洲色图在线播放| 欧美国产日产图区| 精品国产一区久久| 91精品国产一区二区三区蜜臀| 91蝌蚪porny| 波多野结衣的一区二区三区| 激情另类小说区图片区视频区| 天堂久久一区二区三区| 亚洲男人电影天堂| 成人免费视频在线观看| 国产清纯美女被跳蛋高潮一区二区久久w | 欧美国产乱子伦| 精品美女在线播放| 欧美一级专区免费大片| 欧美三电影在线| 日本乱人伦一区| eeuss影院一区二区三区| 成人午夜私人影院| 国产精品 欧美精品| 国内精品久久久久影院一蜜桃| 免费一级欧美片在线观看| 日韩中文字幕一区二区三区| 亚洲综合av网| 亚洲狠狠爱一区二区三区| 一区二区三区视频在线看| 亚洲免费观看高清| 亚洲在线视频网站| 亚洲午夜精品在线| 午夜精品视频在线观看| 午夜不卡在线视频| 视频一区在线播放| 免费观看成人av| 美女任你摸久久| 精品一区二区影视| 国产精品一区二区三区网站| 国产91对白在线观看九色| 不卡av在线免费观看| aa级大片欧美| 欧美日韩国产精品自在自线| 欧美日韩二区三区| 欧美一个色资源| 久久亚洲春色中文字幕久久久| 国产女人aaa级久久久级 | 精品国产一区二区三区四区四| 精品99久久久久久| 国产欧美日韩综合| 亚洲激情五月婷婷| 视频一区二区中文字幕| 激情综合网av| 丁香五精品蜜臀久久久久99网站 | 精品久久久久久无| 国产精品视频观看| 亚洲高清一区二区三区| 麻豆成人久久精品二区三区红| 国产成人在线电影| 色噜噜偷拍精品综合在线| 91精品久久久久久久91蜜桃| 久久久五月婷婷| 亚洲欧美日韩小说| 美女视频网站黄色亚洲| 国产a久久麻豆| 精品视频1区2区| 国产日韩精品视频一区| 亚洲影视资源网| 国产在线不卡视频| 欧美日韩视频在线一区二区| 欧美va日韩va| 亚洲男同1069视频| 国内一区二区在线| 日本精品视频一区二区三区| 日韩欧美一区中文| 一区二区在线观看视频| 九九久久精品视频| 色激情天天射综合网| 久久久99久久精品欧美| 午夜精品久久久久久久99水蜜桃| 国产高清亚洲一区| 7878成人国产在线观看| 亚洲免费观看视频| 成人免费毛片aaaaa**| 欧美丰满高潮xxxx喷水动漫| 中文字幕一区三区| 国产一区二三区好的| 欧美高清你懂得| 亚洲天堂成人在线观看| 国产成人在线视频免费播放| 欧美酷刑日本凌虐凌虐| 亚洲欧美精品午睡沙发| 国产suv一区二区三区88区| 日韩午夜精品视频| 亚洲一本大道在线| 91美女片黄在线观看91美女| 久久婷婷成人综合色| 日韩福利电影在线| 欧美系列在线观看| 亚洲人一二三区| 成人黄色在线看| 国产午夜精品一区二区三区嫩草| 日韩电影网1区2区| 欧美日韩一区在线观看| 亚洲三级免费电影| av一区二区不卡| 国产欧美精品一区二区色综合 | 99视频在线观看一区三区| 久久众筹精品私拍模特| 日本成人在线视频网站| 欧美狂野另类xxxxoooo| 亚洲国产精品视频| 欧美日韩黄色影视| 亚洲第一搞黄网站| 欧美高清hd18日本| 亚洲aⅴ怡春院| 9191成人精品久久| 免费成人在线观看| 日韩免费视频一区二区| 麻豆精品视频在线观看免费| 欧美精品aⅴ在线视频| 日日夜夜免费精品| 3atv一区二区三区| 日韩二区三区四区| 欧美一区二区视频网站| 青青草97国产精品免费观看无弹窗版| 欧美久久免费观看| 蜜桃视频在线观看一区| 精品国产91亚洲一区二区三区婷婷| 麻豆国产精品视频| 国产女主播视频一区二区| 99久久er热在这里只有精品15| 亚洲女人的天堂| 欧美性色黄大片| 美女任你摸久久| 日本一区二区三区电影| 成人av第一页| 一区二区免费看| 日韩欧美国产综合| 国产不卡在线视频| 亚洲美腿欧美偷拍| 欧美精品色一区二区三区| 免费在线看成人av| 久久精品在线免费观看| 91麻豆国产在线观看| 性做久久久久久免费观看| 337p日本欧洲亚洲大胆精品 | 欧美日韩久久一区二区| 日韩av中文字幕一区二区三区 | 国产精品福利影院| 欧美视频在线不卡| 国产在线精品视频|