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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? zzx.c

?? 密碼大家Shoup寫的數(shù)論算法c語言實現(xiàn)
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include <NTL/ZZX.h>#include <NTL/new.h>NTL_START_IMPLconst ZZX& ZZX::zero(){   static ZZX z;   return z;}void conv(ZZ_pX& x, const ZZX& a){   conv(x.rep, a.rep);   x.normalize();}void conv(ZZX& x, const ZZ_pX& a){   conv(x.rep, a.rep);   x.normalize();}istream& operator>>(istream& s, ZZX& x){   s >> x.rep;   x.normalize();   return s;}ostream& operator<<(ostream& s, const ZZX& a){   return s << a.rep;}void ZZX::normalize(){   long n;   const ZZ* p;   n = rep.length();   if (n == 0) return;   p = rep.elts() + (n-1);   while (n > 0 && IsZero(*p)) {      p--;       n--;   }   rep.SetLength(n);}long IsZero(const ZZX& a){   return a.rep.length() == 0;}long IsOne(const ZZX& a){    return a.rep.length() == 1 && IsOne(a.rep[0]);}long operator==(const ZZX& a, const ZZX& b){   long i, n;   const ZZ *ap, *bp;   n = a.rep.length();   if (n != b.rep.length()) return 0;   ap = a.rep.elts();   bp = b.rep.elts();   for (i = 0; i < n; i++)      if (ap[i] != bp[i]) return 0;   return 1;}long operator==(const ZZX& a, long b){   if (b == 0)      return IsZero(a);   if (deg(a) != 0)      return 0;   return a.rep[0] == b;}long operator==(const ZZX& a, const ZZ& b){   if (IsZero(b))      return IsZero(a);   if (deg(a) != 0)      return 0;   return a.rep[0] == b;}void GetCoeff(ZZ& x, const ZZX& a, long i){   if (i < 0 || i > deg(a))      clear(x);   else      x = a.rep[i];}void SetCoeff(ZZX& x, long i, const ZZ& a){   long j, m;   if (i < 0)       Error("SetCoeff: negative index");   if (i >= (1L << (NTL_BITS_PER_LONG-4)))      Error("overflow in SetCoeff");   m = deg(x);   if (i > m) {      long pos = x.rep.position(a);      x.rep.SetLength(i+1);      if (pos != -1)         x.rep[i] = x.rep.RawGet(pos);      else         x.rep[i] = a;      for (j = m+1; j < i; j++)         clear(x.rep[j]);   }   else      x.rep[i] = a;   x.normalize();}void SetCoeff(ZZX& x, long i){   long j, m;   if (i < 0)       Error("coefficient index out of range");   if (i >= (1L << (NTL_BITS_PER_LONG-4)))      Error("overflow in SetCoeff");   m = deg(x);   if (i > m) {      x.rep.SetLength(i+1);      for (j = m+1; j < i; j++)         clear(x.rep[j]);   }   set(x.rep[i]);   x.normalize();}void SetX(ZZX& x){   clear(x);   SetCoeff(x, 1);}long IsX(const ZZX& a){   return deg(a) == 1 && IsOne(LeadCoeff(a)) && IsZero(ConstTerm(a));}            const ZZ& coeff(const ZZX& a, long i){   if (i < 0 || i > deg(a))      return ZZ::zero();   else      return a.rep[i];}const ZZ& LeadCoeff(const ZZX& a){   if (IsZero(a))      return ZZ::zero();   else      return a.rep[deg(a)];}const ZZ& ConstTerm(const ZZX& a){   if (IsZero(a))      return ZZ::zero();   else      return a.rep[0];}void conv(ZZX& x, const ZZ& a){   if (IsZero(a))      x.rep.SetLength(0);   else {      x.rep.SetLength(1);      x.rep[0] = a;   }}void conv(ZZX& x, long a){   if (a == 0)       x.rep.SetLength(0);   else {      x.rep.SetLength(1);      conv(x.rep[0], a);   }}void conv(ZZX& x, const vec_ZZ& a){   x.rep = a;   x.normalize();}void add(ZZX& x, const ZZX& a, const ZZX& b){   long da = deg(a);   long db = deg(b);   long minab = min(da, db);   long maxab = max(da, db);   x.rep.SetLength(maxab+1);   long i;   const ZZ *ap, *bp;    ZZ* xp;   for (i = minab+1, ap = a.rep.elts(), bp = b.rep.elts(), xp = x.rep.elts();        i; i--, ap++, bp++, xp++)      add(*xp, (*ap), (*bp));   if (da > minab && &x != &a)      for (i = da-minab; i; i--, xp++, ap++)         *xp = *ap;   else if (db > minab && &x != &b)      for (i = db-minab; i; i--, xp++, bp++)         *xp = *bp;   else      x.normalize();}void add(ZZX& x, const ZZX& a, const ZZ& b){   long n = a.rep.length();   if (n == 0) {      conv(x, b);   }   else if (&x == &a) {      add(x.rep[0], a.rep[0], b);      x.normalize();   }   else if (x.rep.MaxLength() == 0) {      x = a;      add(x.rep[0], a.rep[0], b);      x.normalize();   }   else {      // ugly...b could alias a coeff of x      ZZ *xp = x.rep.elts();      add(xp[0], a.rep[0], b);      x.rep.SetLength(n);      xp = x.rep.elts();      const ZZ *ap = a.rep.elts();      long i;      for (i = 1; i < n; i++)         xp[i] = ap[i];      x.normalize();   }}void add(ZZX& x, const ZZX& a, long b){   if (a.rep.length() == 0) {      conv(x, b);   }   else {      if (&x != &a) x = a;      add(x.rep[0], x.rep[0], b);      x.normalize();   }}void sub(ZZX& x, const ZZX& a, const ZZX& b){   long da = deg(a);   long db = deg(b);   long minab = min(da, db);   long maxab = max(da, db);   x.rep.SetLength(maxab+1);   long i;   const ZZ *ap, *bp;    ZZ* xp;   for (i = minab+1, ap = a.rep.elts(), bp = b.rep.elts(), xp = x.rep.elts();        i; i--, ap++, bp++, xp++)      sub(*xp, (*ap), (*bp));   if (da > minab && &x != &a)      for (i = da-minab; i; i--, xp++, ap++)         *xp = *ap;   else if (db > minab)      for (i = db-minab; i; i--, xp++, bp++)         negate(*xp, *bp);   else      x.normalize();}void sub(ZZX& x, const ZZX& a, const ZZ& b){   long n = a.rep.length();   if (n == 0) {      conv(x, b);      negate(x, x);   }   else if (&x == &a) {      sub(x.rep[0], a.rep[0], b);      x.normalize();   }   else if (x.rep.MaxLength() == 0) {      x = a;      sub(x.rep[0], a.rep[0], b);      x.normalize();   }   else {      // ugly...b could alias a coeff of x      ZZ *xp = x.rep.elts();      sub(xp[0], a.rep[0], b);      x.rep.SetLength(n);      xp = x.rep.elts();      const ZZ *ap = a.rep.elts();      long i;      for (i = 1; i < n; i++)         xp[i] = ap[i];      x.normalize();   }}void sub(ZZX& x, const ZZX& a, long b){   if (b == 0) {      x = a;      return;   }   if (a.rep.length() == 0) {      x.rep.SetLength(1);      conv(x.rep[0], b);      negate(x.rep[0], x.rep[0]);   }   else {      if (&x != &a) x = a;      sub(x.rep[0], x.rep[0], b);   }   x.normalize();}void sub(ZZX& x, long a, const ZZX& b){   negate(x, b);   add(x, x, a);}void sub(ZZX& x, const ZZ& b, const ZZX& a){   long n = a.rep.length();   if (n == 0) {      conv(x, b);   }   else if (x.rep.MaxLength() == 0) {      negate(x, a);      add(x.rep[0], a.rep[0], b);      x.normalize();   }   else {      // ugly...b could alias a coeff of x      ZZ *xp = x.rep.elts();      sub(xp[0], b, a.rep[0]);      x.rep.SetLength(n);      xp = x.rep.elts();      const ZZ *ap = a.rep.elts();      long i;      for (i = 1; i < n; i++)         negate(xp[i], ap[i]);      x.normalize();   }}void negate(ZZX& x, const ZZX& a){   long n = a.rep.length();   x.rep.SetLength(n);   const ZZ* ap = a.rep.elts();   ZZ* xp = x.rep.elts();   long i;   for (i = n; i; i--, ap++, xp++)      negate((*xp), (*ap));}long MaxBits(const ZZX& f){   long i, m;   m = 0;   for (i = 0; i <= deg(f); i++) {      m = max(m, NumBits(f.rep[i]));   }   return m;}void PlainMul(ZZX& x, const ZZX& a, const ZZX& b){   if (&a == &b) {      PlainSqr(x, a);      return;   }   long da = deg(a);   long db = deg(b);   if (da < 0 || db < 0) {      clear(x);      return;   }   long d = da+db;   const ZZ *ap, *bp;   ZZ *xp;      ZZX la, lb;   if (&x == &a) {      la = a;      ap = la.rep.elts();   }   else      ap = a.rep.elts();

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美丰满一区二区免费视频| 欧美mv和日韩mv国产网站| 日本最新不卡在线| 欧美激情在线看| 日韩视频一区二区| 色婷婷久久久综合中文字幕 | 亚洲色图制服诱惑| 日韩欧美久久久| 色综合天天狠狠| 国产成a人亚洲| 蜜臀国产一区二区三区在线播放| 一区二区三区中文字幕在线观看| 欧美经典三级视频一区二区三区| 日韩精品一区二区三区四区| 欧美日本一区二区在线观看| 91片黄在线观看| 国产精品亚洲成人| 九九精品一区二区| 日韩高清电影一区| 亚洲国产精品久久人人爱 | 日本不卡的三区四区五区| 亚洲欧洲日本在线| 国产日韩欧美精品综合| 欧美精品一区二区不卡| 91麻豆精品国产无毒不卡在线观看| 91猫先生在线| 91视频.com| 91麻豆swag| 91香蕉视频污在线| av亚洲精华国产精华| 丁香一区二区三区| 国产福利一区二区三区在线视频| 狠狠色狠狠色合久久伊人| 麻豆91免费看| 久久97超碰国产精品超碰| 美国毛片一区二区| 精品影视av免费| 国产一区免费电影| 国产在线不卡一卡二卡三卡四卡| 九色|91porny| 国产精品一区二区三区四区| 国产精品18久久久久久vr| 国产精品资源网| 成人av在线电影| 99精品视频中文字幕| 色综合中文字幕国产| av资源网一区| 99re热这里只有精品视频| 91麻豆自制传媒国产之光| 欧美性猛交xxxx乱大交退制版 | 午夜一区二区三区视频| 午夜精品免费在线观看| 日产精品久久久久久久性色| 精品一区二区在线视频| 粉嫩欧美一区二区三区高清影视 | 国产福利精品一区| 91在线播放网址| 欧美日韩午夜精品| 日韩欧美不卡一区| 国产日产欧产精品推荐色| 亚洲欧洲av色图| 香蕉乱码成人久久天堂爱免费| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产麻豆91精品| 91丨九色丨蝌蚪丨老版| 欧美猛男男办公室激情| 久久男人中文字幕资源站| 成人欧美一区二区三区黑人麻豆 | 亚洲精品国产无天堂网2021 | 精品av综合导航| 国产精品色呦呦| 亚洲国产精品久久久久婷婷884| 美女视频免费一区| 成人性生交大片免费| 欧美中文一区二区三区| 精品日韩欧美在线| 成人欧美一区二区三区小说 | 欧美日韩免费观看一区三区| 精品乱人伦小说| 亚洲欧美另类综合偷拍| 久久国产视频网| 91黄视频在线| 久久久久9999亚洲精品| 亚洲v精品v日韩v欧美v专区| 国产成人亚洲精品青草天美| 777欧美精品| 中文字幕一区不卡| 狠狠网亚洲精品| 欧美亚洲图片小说| 国产精品久久久久影院| 免费精品视频在线| 色国产综合视频| 久久精品视频免费观看| 日韩在线一区二区三区| 91视频在线观看免费| 欧美精品一区男女天堂| 午夜精品一区二区三区电影天堂| 国产精品一级黄| 日韩午夜激情视频| 一区二区三区不卡视频在线观看| 国产成人免费在线观看不卡| 欧美一区二区国产| 亚洲福利视频一区二区| 97se亚洲国产综合自在线不卡 | 5858s免费视频成人| 最新日韩av在线| 国产精品99精品久久免费| 欧美一区二区三区在线看| 一区二区三区四区中文字幕| 国产成人无遮挡在线视频| 欧美成人一区二区三区| 亚洲不卡在线观看| 欧美在线一区二区| 日韩理论在线观看| 粉嫩绯色av一区二区在线观看| 日韩女优制服丝袜电影| 天堂va蜜桃一区二区三区 | 欧美日韩一区二区三区视频| 成人欧美一区二区三区白人| 懂色av一区二区夜夜嗨| 国产拍欧美日韩视频二区| 国产在线观看免费一区| www国产成人| 国产精品1区2区3区在线观看| 欧美精品一区二区三区蜜桃视频 | 色激情天天射综合网| 国产精品久久久久久久久免费相片| 国产毛片精品国产一区二区三区| 日韩欧美一级特黄在线播放| 免费欧美在线视频| 日韩三级av在线播放| 奇米色一区二区三区四区| 欧美一级淫片007| 久久成人麻豆午夜电影| 日韩欧美国产高清| 黑人巨大精品欧美一区| 2021中文字幕一区亚洲| 国产精品一线二线三线| 国产网红主播福利一区二区| 成人午夜免费电影| 亚洲欧洲在线观看av| 99re8在线精品视频免费播放| 亚洲丝袜制服诱惑| 欧美怡红院视频| 热久久国产精品| 久久久久久久性| av电影在线观看不卡| 亚洲精品国产品国语在线app| 欧美性受xxxx| 免费观看在线综合| 国产欧美在线观看一区| 成人妖精视频yjsp地址| 亚洲精品亚洲人成人网| 777亚洲妇女| 国产精品1区2区| 亚洲六月丁香色婷婷综合久久| 欧美在线小视频| 理论电影国产精品| 亚洲国产激情av| 欧美一a一片一级一片| 六月丁香综合在线视频| 中文无字幕一区二区三区| 一本久道中文字幕精品亚洲嫩| 日韩电影免费在线| 欧美激情在线一区二区| 91官网在线免费观看| 九九视频精品免费| 亚洲视频在线观看一区| 欧美伦理电影网| 成人免费看视频| 天堂一区二区在线| 日本一区二区三区dvd视频在线| 日本电影欧美片| 精品一区二区在线视频| 亚洲精品国产一区二区三区四区在线| 在线91免费看| 99久久精品费精品国产一区二区| 日韩国产欧美在线视频| 亚洲国产精品二十页| 3atv在线一区二区三区| 不卡一区二区三区四区| 日本欧美在线看| 亚洲精品大片www| 久久久91精品国产一区二区精品| 欧美亚洲图片小说| 大桥未久av一区二区三区中文| 亚洲成av人影院在线观看网| 亚洲国产激情av| 欧美成人r级一区二区三区| 日本韩国欧美国产| 成人美女视频在线观看| 麻豆精品视频在线观看免费| 亚洲色图.com| 国产亚洲欧美日韩日本| 欧美一级高清大全免费观看| 91久久精品一区二区| 成人午夜激情片| 国内精品写真在线观看| 香蕉影视欧美成人| 亚洲黄色小视频|