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

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

?? lll.c

?? 密碼大家Shoup寫的數(shù)論算法c語言實(shí)現(xiàn)
?? C
字號:
#include <NTL/LLL.h>#include <NTL/new.h>NTL_START_IMPLstatic void ExactDiv(ZZ& qq, const ZZ& a, const ZZ& b){   static ZZ q, r;   DivRem(q, r, a, b);   if (!IsZero(r)) {      cerr << "a = " << a << "\n";      cerr << "b = " << b << "\n";      Error("ExactDiv: nonzero remainder");   }   qq = q;}static void BalDiv(ZZ& q, const ZZ& a, const ZZ& d)//  rounds a/d to nearest integer, breaking ties//    by rounding towards zero.  Assumes d > 0.{   static ZZ r;   DivRem(q, r, a, d);   add(r, r, r);   long cmp = compare(r, d);   if (cmp > 0 || (cmp == 0 && q < 0))      add(q, q, 1);}static void MulAddDiv(ZZ& c, const ZZ& c1, const ZZ& c2,                       const ZZ& x, const ZZ& y, const ZZ& z)// c = (x*c1 + y*c2)/z{   static ZZ t1, t2;   mul(t1, x, c1);   mul(t2, y, c2);   add(t1, t1, t2);   ExactDiv(c, t1, z);}static void MulSubDiv(ZZ& c, const ZZ& c1, const ZZ& c2,                       const ZZ& x, const ZZ& y, const ZZ& z)// c = (x*c1 - y*c2)/z{   static ZZ t1, t2;   mul(t1, x, c1);   mul(t2, y, c2);   sub(t1, t1, t2);   ExactDiv(c, t1, z);}   #if 0static void MulSubDiv(vec_ZZ& c, const vec_ZZ& c1, const vec_ZZ& c2,                      const ZZ& x, const ZZ& y, const ZZ& z)// c = (x*c1 + y*c2)/z{   long n = c1.length();   if (c2.length() != n) Error("MulSubDiv: length mismatch");   c.SetLength(n);   long i;   for (i = 1; i <= n; i++)       MulSubDiv(c(i), c1(i), c2(i), x, y, z);}#endifstatic void RowTransform(vec_ZZ& c1, vec_ZZ& c2,                         const ZZ& x, const ZZ& y, const ZZ& u, const ZZ& v)// (c1, c2) = (x*c1 + y*c2, u*c1 + v*c2){   long n = c1.length();   if (c2.length() != n) Error("MulSubDiv: length mismatch");   static ZZ t1, t2, t3, t4;   long i;   for (i = 1; i <= n; i++) {      mul(t1, x, c1(i));      mul(t2, y, c2(i));      add(t1, t1, t2);      mul(t3, u, c1(i));      mul(t4, v, c2(i));      add(t3, t3, t4);      c1(i) = t1;      c2(i) = t3;   }}static void RowTransform(ZZ& c1, ZZ& c2,                         const ZZ& x, const ZZ& y, const ZZ& u, const ZZ& v)// (c1, c2) = (x*c1 + y*c2, u*c1 + v*c2){   static ZZ t1, t2, t3, t4;   mul(t1, x, c1);   mul(t2, y, c2);   add(t1, t1, t2);   mul(t3, u, c1);   mul(t4, v, c2);   add(t3, t3, t4);   c1 = t1;   c2 = t3;}static void MulSub(ZZ& c, const ZZ& c1, const ZZ& c2, const ZZ& x)// c = c1 - x*c2{   static ZZ t1;   mul(t1, x, c2);   sub(c, c1, t1);}static void MulSub(vec_ZZ& c, const vec_ZZ& c1, const vec_ZZ& c2,                   const ZZ& x)// c = c1 - x*c2{   long n = c1.length();   if (c2.length() != n) Error("MulSub: length mismatch");   c.SetLength(n);   long i;   for (i = 1; i <= n; i++)      MulSub(c(i), c1(i), c2(i), x);}               static long SwapTest(const ZZ& d0, const ZZ& d1, const ZZ& d2, const ZZ& lam,                     long a, long b)// test if a*d1^2 > b*(d0*d2 + lam^2){   static ZZ t1, t2;   mul(t1, d0, d2);   sqr(t2, lam);   add(t1, t1, t2);   mul(t1, t1, b);   sqr(t2, d1);   mul(t2, t2, a);   return t2 > t1;}staticvoid reduce(long k, long l,             mat_ZZ& B, vec_long& P, vec_ZZ& D,             vec_vec_ZZ& lam, mat_ZZ* U){   static ZZ t1;   static ZZ r;   if (P(l) == 0) return;   add(t1, lam(k)(P(l)), lam(k)(P(l)));   abs(t1, t1);   if (t1 <= D[P(l)]) return;   long j;   BalDiv(r, lam(k)(P(l)), D[P(l)]);   MulSub(B(k), B(k), B(l), r);   if (U) MulSub((*U)(k), (*U)(k), (*U)(l), r);   for (j = 1; j <= l-1; j++)      if (P(j) != 0)         MulSub(lam(k)(P(j)), lam(k)(P(j)), lam(l)(P(j)), r);   MulSub(lam(k)(P(l)), lam(k)(P(l)), D[P(l)], r);}staticvoid swap(long k, mat_ZZ& B, vec_long& P, vec_ZZ& D,           vec_vec_ZZ& lam, mat_ZZ* U, long m, long verbose)// swaps vectors k-1 and k;  assumes P(k-1) != 0{   long i, j;   static ZZ t1, t2, t3, e, x, y;   if (P(k) != 0) {      if (verbose) cerr << "swap case 1: " << k << "\n";      swap(B(k-1), B(k));      if (U) swap((*U)(k-1), (*U)(k));         for (j = 1; j <= k-2; j++)         if (P(j) != 0)            swap(lam(k-1)(P(j)), lam(k)(P(j)));      for (i = k+1; i <= m; i++) {         MulAddDiv(t1, lam(i)(P(k)-1), lam(i)(P(k)),                    lam(k)(P(k)-1), D[P(k)-2], D[P(k)-1]);          MulSubDiv(t2, lam(i)(P(k)-1), lam(i)(P(k)),                    D[P(k)], lam(k)(P(k)-1), D[P(k)-1]);         lam(i)(P(k)-1) = t1;         lam(i)(P(k)) = t2;      }      MulAddDiv(D[P(k)-1], D[P(k)], lam(k)(P(k)-1),                D[P(k)-2], lam(k)(P(k)-1), D[P(k)-1]);   }   else if (!IsZero(lam(k)(P(k-1)))) {      if (verbose) cerr << "swap case 2: " << k << "\n";      XGCD(e, x, y, lam(k)(P(k-1)), D[P(k-1)]);      ExactDiv(t1, lam(k)(P(k-1)), e);      ExactDiv(t2, D[P(k-1)], e);      t3 = t2;      negate(t2, t2);      RowTransform(B(k-1), B(k), t1, t2, y, x);      if (U) RowTransform((*U)(k-1), (*U)(k), t1, t2, y, x);      for (j = 1; j <= k-2; j++)         if (P(j) != 0)            RowTransform(lam(k-1)(P(j)), lam(k)(P(j)), t1, t2, y, x);      sqr(t2, t2);      ExactDiv(D[P(k-1)], D[P(k-1)], t2);      for (i = k+1; i <= m; i++)         if (P(i) != 0) {            ExactDiv(D[P(i)], D[P(i)], t2);            for (j = i+1; j <= m; j++) {               ExactDiv(lam(j)(P(i)), lam(j)(P(i)), t2);            }         }      for (i = k+1; i <= m; i++) {         ExactDiv(lam(i)(P(k-1)), lam(i)(P(k-1)), t3);      }      swap(P(k-1), P(k));   }   else {      if (verbose) cerr << "swap case 3: " << k << "\n";      swap(B(k-1), B(k));      if (U) swap((*U)(k-1), (*U)(k));         for (j = 1; j <= k-2; j++)         if (P(j) != 0)            swap(lam(k-1)(P(j)), lam(k)(P(j)));      swap(P(k-1), P(k));   }}   staticvoid IncrementalGS(mat_ZZ& B, vec_long& P, vec_ZZ& D, vec_vec_ZZ& lam,                    long& s, long k){   long n = B.NumCols();   long m = B.NumRows();   static ZZ u, t1, t2;   long i, j;   for (j = 1; j <= k-1; j++) {      long posj = P(j);      if (posj == 0) continue;      InnerProduct(u, B(k), B(j));      for (i = 1; i <= posj-1; i++) {         mul(t1, D[i], u);         mul(t2, lam(k)(i), lam(j)(i));         sub(t1, t1, t2);         div(t1, t1, D[i-1]);         u = t1;      }      lam(k)(posj) = u;   }   InnerProduct(u, B(k), B(k));   for (i = 1; i <= s; i++) {      mul(t1, D[i], u);      mul(t2, lam(k)(i), lam(k)(i));      sub(t1, t1, t2);      div(t1, t1, D[i-1]);      u = t1;   }   if (u == 0) {      P(k) = 0;   }   else {      s++;      P(k) = s;      D[s] = u;   }}staticlong LLL(ZZ& det, mat_ZZ& B, mat_ZZ* U, long a, long b, long verbose){   long m = B.NumRows();   long n = B.NumCols();   vec_long P;   P.SetLength(m);   vec_ZZ D;   D.SetLength(m+1);   D[0] = 1;   vec_vec_ZZ lam;   lam.SetLength(m);   long j;   for (j = 1; j <= m; j++)      lam(j).SetLength(m);   if (U) ident(*U, m);   long s = 0;   long k = 1;   long max_k = 0;   while (k <= m) {      if (k > max_k) {         IncrementalGS(B, P, D, lam, s, k);         max_k = k;      }      if (k == 1) {         k++;         continue;      }      reduce(k, k-1, B, P, D, lam, U);      if (P(k-1) != 0 &&           (P(k) == 0 ||            SwapTest(D[P(k)], D[P(k)-1], D[P(k)-2], lam(k)(P(k)-1), a, b))) {         swap(k, B, P, D, lam, U, max_k, verbose);         k--;      }      else {         for (j = k-2; j >= 1; j--)             reduce(k, j, B, P, D, lam, U);         k++;      }   }   det = D[s];   return s;}staticlong image(ZZ& det, mat_ZZ& B, mat_ZZ* U, long verbose){   long m = B.NumRows();   long n = B.NumCols();   vec_long P;   P.SetLength(m);   vec_ZZ D;   D.SetLength(m+1);   D[0] = 1;   vec_vec_ZZ lam;   lam.SetLength(m);   long j;   for (j = 1; j <= m; j++)      lam(j).SetLength(m);   if (U) ident(*U, m);   long s = 0;   long k = 1;   long max_k = 0;   while (k <= m) {      if (k > max_k) {         IncrementalGS(B, P, D, lam, s, k);         max_k = k;      }      if (k == 1) {         k++;         continue;      }      reduce(k, k-1, B, P, D, lam, U);      if (P(k-1) != 0 && P(k) == 0) {         swap(k, B, P, D, lam, U, max_k, verbose);         k--;      }      else {         for (j = k-2; j >= 1; j--)             reduce(k, j, B, P, D, lam, U);         k++;      }   }   det = D[s];   return s;}long LLL(ZZ& det, mat_ZZ& B, mat_ZZ& U, long verbose){   return LLL(det, B, &U, 3, 4, verbose);}long LLL(ZZ& det, mat_ZZ& B, long verbose){   return LLL(det, B, 0, 3, 4, verbose);}long LLL(ZZ& det, mat_ZZ& B, mat_ZZ& U, long a, long b, long verbose){   if (a <= 0 || b <= 0 || a > b || b/4 >= a) Error("LLL: bad args");      return LLL(det, B, &U, a, b, verbose);}long LLL(ZZ& det, mat_ZZ& B, long a, long b, long verbose){   if (a <= 0 || b <= 0 || a > b || b/4 >= a) Error("LLL: bad args");   return LLL(det, B, 0, a, b, verbose);}long image(ZZ& det, mat_ZZ& B, mat_ZZ& U, long verbose){   return image(det, B, &U, verbose);}long image(ZZ& det, mat_ZZ& B, long verbose){   return image(det, B, 0, verbose);}NTL_END_IMPL

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩亚洲欧美成人一区| 风间由美性色一区二区三区| 日本视频免费一区| 亚洲大片免费看| 日本中文字幕一区| 精品亚洲成a人在线观看| 日本不卡中文字幕| 久久99国产乱子伦精品免费| 美国三级日本三级久久99| 激情深爱一区二区| 国产另类ts人妖一区二区| 国产精品911| 色欧美片视频在线观看在线视频| 91丨九色丨国产丨porny| 欧美人牲a欧美精品| 欧美r级电影在线观看| 亚洲精品在线观看网站| 欧美国产一区在线| 一区二区三区日韩在线观看| 日本成人超碰在线观看| 国产精品456| 欧美日韩一区三区| 欧美精品一区二区三区蜜臀| 国产精品视频你懂的| 艳妇臀荡乳欲伦亚洲一区| 久久国产精品无码网站| 成人高清在线视频| 欧美大片国产精品| 中文字幕一区二区三区四区| 五月天一区二区三区| 国产福利不卡视频| 精品区一区二区| 亚洲国产另类av| 91碰在线视频| 欧美国产欧美综合| 久久99久久久久| 欧美日韩不卡视频| 亚洲激情男女视频| 91偷拍与自偷拍精品| 久久精品水蜜桃av综合天堂| 欧美日免费三级在线| 国产精品网曝门| 国产乱理伦片在线观看夜一区| 91精品国产欧美一区二区18| 亚洲综合视频网| 欧美日韩视频在线第一区 | 久久综合九色综合欧美98| 日韩激情一二三区| 日韩精品一区二区三区视频| 久久精品国产一区二区| 欧美精品一区二区三区一线天视频 | 亚洲欧洲av色图| 青青草精品视频| 日本高清成人免费播放| 国产精品视频一二| 日本亚洲最大的色成网站www| 欧美日韩高清在线播放| 婷婷综合另类小说色区| 欧美久久一二区| 首页国产欧美日韩丝袜| 欧美日韩美女一区二区| 麻豆精品一区二区三区| 国产色一区二区| 欧美日韩在线精品一区二区三区激情 | 欧美四级电影在线观看| 天天做天天摸天天爽国产一区| 精品成人佐山爱一区二区| 在线亚洲一区二区| 国产精品一区2区| 久久精品99久久久| 一区二区三区在线观看网站| 欧洲激情一区二区| 国产成人免费视| 日本欧美久久久久免费播放网| 日本一区二区三区国色天香 | 久久伊99综合婷婷久久伊| 在线观看三级视频欧美| 国产成人啪午夜精品网站男同| 五月激情综合婷婷| 视频一区二区中文字幕| 一区二区三区丝袜| 中文字幕精品在线不卡| 欧美成人精品3d动漫h| 欧美夫妻性生活| 欧美图片一区二区三区| eeuss鲁片一区二区三区在线看| 日本亚洲欧美天堂免费| 亚洲综合视频在线| 亚洲欧美激情在线| 欧美激情中文字幕| 亚洲欧美另类小说| 亚洲午夜成aⅴ人片| 一级精品视频在线观看宜春院| 国产欧美日韩视频在线观看| 中文字幕欧美区| 亚洲天堂中文字幕| 亚洲精品第一国产综合野| 亚洲激情综合网| 国内成人精品2018免费看| 青椒成人免费视频| 成人高清免费在线播放| 91福利精品视频| 日韩精品中午字幕| 国产亚洲美州欧州综合国| 中文字幕免费一区| 亚洲一区在线免费观看| 日本视频在线一区| www.99精品| 精品三级在线看| 一区二区三区成人| 日韩国产精品久久久久久亚洲| 国产真实乱偷精品视频免| 波多野结衣91| 日韩视频一区二区三区| 国产精品久久久久久久久免费樱桃 | 香蕉乱码成人久久天堂爱免费| 国产成人免费网站| 日韩你懂的在线观看| 亚洲精品乱码久久久久久黑人| 免费观看久久久4p| 日韩电影在线一区二区三区| 91啪在线观看| 国产精品麻豆一区二区| 久久99国产精品久久99果冻传媒| 风流少妇一区二区| 欧美xxxx在线观看| 日本不卡的三区四区五区| 色婷婷久久99综合精品jk白丝| 久久久亚洲午夜电影| 久久国产精品99久久人人澡| 欧美精品丝袜久久久中文字幕| 亚洲柠檬福利资源导航| 国产精品一色哟哟哟| 日韩视频免费观看高清完整版| 五月婷婷久久丁香| 欧美日产在线观看| 精品制服美女久久| 中文字幕视频一区| 欧美三级韩国三级日本一级| 国产精品入口麻豆原神| 国产成人丝袜美腿| 久久亚洲二区三区| 欧美日韩卡一卡二| 91黄色激情网站| 日韩高清在线观看| 国产高清一区日本| 国产精品77777竹菊影视小说| 99视频热这里只有精品免费| 日韩欧美的一区| 国产精品久久久久一区| 青青青爽久久午夜综合久久午夜| 国产久卡久卡久卡久卡视频精品| 91超碰这里只有精品国产| 久久一留热品黄| 美女网站在线免费欧美精品| 北条麻妃一区二区三区| 欧美国产禁国产网站cc| 视频一区视频二区中文| 欧美影院一区二区| 精品国产伦一区二区三区观看体验| 亚洲一卡二卡三卡四卡无卡久久 | 韩国午夜理伦三级不卡影院| 91老师片黄在线观看| 久久免费看少妇高潮| 奇米精品一区二区三区在线观看| 国产精品一区二区不卡| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲综合另类小说| 99这里都是精品| 国产无一区二区| 国产麻豆精品theporn| 91精品国产综合久久国产大片| 亚洲图片一区二区| 色综合天天做天天爱| 中文字幕av一区二区三区| 国产在线不卡视频| 26uuu精品一区二区在线观看| 日本在线不卡一区| 制服丝袜成人动漫| 亚洲国产精品成人综合| 成人高清在线视频| 国产精品女上位| 国产成人av福利| 久久精品夜色噜噜亚洲a∨| 狠狠色丁香婷婷综合| 日韩免费高清电影| 成人自拍视频在线观看| 久久综合色8888| 久久精品久久精品| 久久久久久免费网| 国产资源精品在线观看| 久久午夜羞羞影院免费观看| 日韩精品电影在线| 欧美成人a∨高清免费观看| 久久99久久精品| 久久久久国产精品免费免费搜索| 国产在线不卡一卡二卡三卡四卡| 久久免费看少妇高潮| 国产一区在线看| 国产精品丝袜久久久久久app|