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

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

?? zz.txt

?? 大數(shù)運(yùn)算類
?? TXT
?? 第 1 頁 / 共 2 頁
字號(hào):

void bit_and(ZZ& x, const ZZ& a, const ZZ& b); // x = |a| AND |b|
void bit_or(ZZ& x, const ZZ& a, const ZZ& b); // x = |a| OR |b|
void bit_xor(ZZ& x, const ZZ& a, const ZZ& b); // x = |a| XOR |b|

// bit-wise Boolean operations, operator notation:

ZZ operator&(const ZZ& a, const ZZ& b);
ZZ operator|(const ZZ& a, const ZZ& b);
ZZ operator^(const ZZ& a, const ZZ& b);

// PROMOTIONS: the above bit-wise operations (both procedural 
// and operator forms) provide promotions from long to ZZ on (a, b).

ZZ& operator&=(ZZ& x, const ZZ& b);
ZZ& operator&=(ZZ& x, long b);

ZZ& operator|=(ZZ& x, const ZZ& b);
ZZ& operator|=(ZZ& x, long b);

ZZ& operator^=(ZZ& x, const ZZ& b);
ZZ& operator^=(ZZ& x, long b);



// conversions between byte sequences and ZZ's

void ZZFromBytes(ZZ& x, const unsigned char *p, long n);
ZZ ZZFromBytes(const unsigned char *p, long n);
// x = sum(p[i]*256^i, i=0..n-1). 
// NOTE: in the unusual event that a char is more than 8 bits, 
//       only the low order 8 bits of p[i] are used

void BytesFromZZ(unsigned char *p, const ZZ& a, long n);
// Computes p[0..n-1] such that abs(a) == sum(p[i]*256^i, i=0..n-1) mod 256^n.

long NumBytes(const ZZ& a);
long NumBytes(long a);
// returns # of base 256 digits needed to represent abs(a).
// NumBytes(0) == 0.



/**************************************************************************\

                            Pseudo-Random Numbers

\**************************************************************************/


// Routines for generating pseudo-random numbers.

// These routines generate high qualtity, cryptographically strong
// pseudo-random numbers.  They are implemented so that their behaviour
// is completely independent of the underlying hardware and long 
// integer implementation.  Note, however, that other routines 
// throughout NTL use pseudo-random numbers, and because of this,
// the word size of the machine can impact the sequence of numbers
// seen by a client program.


void SetSeed(const ZZ& s); 
// Initializes generator with a "seed" s.
// s is first hashed to generate the initial state, so it is
// not necessary that s itself looks random, just that 
// it has a lot of "entropy".
// If SetSeed is not called before using the routines below,
// a default initial state is used.
// Calling SetSeed with s == 0, e.g. SetSeed(ZZ::zero()), 
// has the effect of re-setting the state to the default initial state.
// Routine ZZFromBytes (above) may be useful.


void RandomBnd(ZZ& x, const ZZ& n);
ZZ RandomBnd(const ZZ& n);
long RandomBnd(long n);
// x = pseudo-random number in the range 0..n-1, or 0 if n <= 0

void RandomBits(ZZ& x, long l);
ZZ RandomBits_ZZ(long l);
long RandomBits_long(long l);
// x = pseudo-random number in the range 0..2^l-1.

void RandomLen(ZZ& x, long l);
ZZ RandomLen_ZZ(long l);
long RandomLen_long(long l);
// x = psuedo-random number with precisely l bits,
// or 0 of l <= 0.

unsigned long RandomBits_ulong(long l);
// returns a pseudo-random number in the range 0..2^l-1

unsigned long RandomWord();
// returns a word filled with pseudo-random bits.
// Equivalent to RandomBits_ulong(NTL_BITS_PER_LONG).


/**************************************************************************\

             Incremental Chinese Remaindering

\**************************************************************************/

long CRT(ZZ& a, ZZ& p, const ZZ& A, const ZZ& P);
long CRT(ZZ& a, ZZ& p, long A, long P);

// 0 <= A < P, (p, P) = 1; computes a' such that a' = a mod p, 
// a' = A mod P, and -p*P/2 < a' <= p*P/2; sets a := a', p := p*P, and
// returns 1 if a's value has changed, otherwise 0


/**************************************************************************\

                  Rational Reconstruction

\**************************************************************************/

long ReconstructRational(ZZ& a, ZZ& b, const ZZ& x, const ZZ& m, 
                         const ZZ& a_bound, const ZZ& b_bound);

// 0 <= x < m, m > 2 * a_bound * b_bound,
// a_bound >= 0, b_bound > 0

// This routine either returns 0, leaving a and b unchanged, 
// or returns 1 and sets a and b so that
//   (1) a = b x (mod m),
//   (2) |a| <= a_bound, 0 < b <= b_bound, and
//   (3) gcd(m, b) = gcd(a, b).

// If there exist a, b satisfying (1), (2), and 
//   (3') gcd(m, b) = 1,
// then a, b are uniquely determined if we impose the additional
// condition that gcd(a, b) = 1;  moreover, if such a, b exist,
// then these values are returned by the routine.

// Unless the calling routine can *a priori* guarantee the existence
// of a, b satisfying (1), (2), and (3'),
// then to ensure correctness, the calling routine should check
// that gcd(m, b) = 1, or equivalently, gcd(a, b) = 1.

// This is implemented using a variant of Lehmer's extended
// Euclidean algorithm.

// Literature:  see G. Collins and M. Encarnacion, J. Symb. Comp. 20:287-297, 
// 1995; P. Wang, M. Guy, and J. Davenport, SIGSAM Bulletin 16:2-3, 1982. 


/**************************************************************************\

                                Primality Testing 
                           and Prime Number Generation

\**************************************************************************/

void GenPrime(ZZ& n, long l, long err = 80);
ZZ GenPrime_ZZ(long l, long err = 80);
long GenPrime_long(long l, long err = 80);

// GenPrime generates a random prime n of length l so that the
// probability that the resulting n is composite is bounded by 2^(-err).
// This calls the routine RandomPrime below, and uses results of 
// Damgard, Landrock, Pomerance to "optimize" 
// the number of Miller-Rabin trials at the end.

void GenGermainPrime(ZZ& n, long l, long err = 80);
ZZ GenGermainPrime_ZZ(long l, long err = 80);
long GenGermainPrime_long(long l, long err = 80);

// A (Sophie) Germain prime is a prime p such that p' = 2*p+1 is also a prime.
// Such primes are useful for cryptographic applications...cryptographers
// sometimes call p' a "strong" or "safe" prime.
// GenGermainPrime generates a random Germain prime n of length l
// so that the probability that either n or 2*n+1 is not a prime
// is bounded by 2^(-err).


long ProbPrime(const ZZ& n, long NumTrials = 10);
long ProbPrime(long n, long NumTrials = 10);
// performs up to NumTrials Miller-witness tests (after some trial division).

void RandomPrime(ZZ& n, long l, long NumTrials=10);
ZZ RandomPrime_ZZ(long l, long NumTrials=10);
long RandomPrime_long(long l, long NumTrials=10);
// n = random l-bit prime.  Uses ProbPrime with NumTrials.

void NextPrime(ZZ& n, const ZZ& m, long NumTrials=10);
ZZ NextPrime(const ZZ& m, long NumTrials=10);
// n = smallest prime >= m.  Uses ProbPrime with NumTrials.

long NextPrime(long m, long NumTrials=10);
// Single precision version of the above.
// Result will always be bounded by NTL_ZZ_SP_BOUND, and an
// error is raised if this cannot be satisfied.

long MillerWitness(const ZZ& n, const ZZ& w);
// Tests if w is a witness to compositeness a la Miller.  Assumption: n is
// odd and positive, 0 <= w < n.
// Return value of 1 implies n is composite.
// Return value of 0 indicates n might be prime.


/**************************************************************************\

                               Exponentiation

\**************************************************************************/


void power(ZZ& x, const ZZ& a, long e); // x = a^e (e >= 0)
ZZ power(const ZZ& a, long e); 

void power(ZZ& x, long a, long e);

// two functional variants:
ZZ power_ZZ(long a, long e);
long power_long(long a, long e);

void power2(ZZ& x, long e); // x = 2^e (e >= 0)
ZZ power2_ZZ(long e);


/**************************************************************************\

                               Square Roots

\**************************************************************************/


void SqrRoot(ZZ& x, const ZZ& a); // x = floor(a^{1/2}) (a >= 0)
ZZ SqrRoot(const ZZ& a); 

long SqrRoot(long a); 




/**************************************************************************\

                    Jacobi symbol and modular square roots

\**************************************************************************/


long Jacobi(const ZZ& a, const ZZ& n);
//  compute Jacobi symbol of a and n; assumes 0 <= a < n, n odd

void SqrRootMod(ZZ& x, const ZZ& a, const ZZ& n);
ZZ SqrRootMod(const ZZ& a, const ZZ& n); 
//  computes square root of a mod n; assumes n is an odd prime, and
//  that a is a square mod n, with 0 <= a < n.




/**************************************************************************\

                             Input/Output

I/O Format:

Numbers are written in base 10, with an optional minus sign.

\**************************************************************************/

istream& operator>>(istream& s, ZZ& x);  
ostream& operator<<(ostream& s, const ZZ& a); 



/**************************************************************************\

                            Miscellany

\**************************************************************************/


// The following macros are defined:

#define NTL_ZZ_NBITS (...)  // number of bits in a zzigit;
                            // a ZZ is represented as a sequence of zzigits.

#define NTL_SP_NBITS (...)  // max number of bits in a "single-precision" number

#define NTL_WSP_NBITS (...)  // max number of bits in a "wide single-precision"
                             // number

// The following relations hold:
//    NTL_SP_NBITS <= NTL_WSP_NBITS <= NTL_ZZ_NBITS
//    26 <= NTL_SP_NBITS <= min(NTL_BITS_PER_LONG-2, NTL_DOUBLE_PRECISION-3)
//    NTL_WSP_NBITS <= NTL_BITS_PER_LONG-2
//
// Note that NTL_ZZ_NBITS may be less than, equal to, or greater than
// NTL_BITS_PER_LONG  -- no particular relationship should be assumed to hold.
// In particular, expressions like (1L << NTL_ZZ_BITS) might overflow.
//
// "single-precision" numbers are meant to be used in conjunction with the
//  single-precision modular arithmetic routines.
//
// "wide single-precision" numbers are meant to be used in conjunction
//  with the ZZ arithmetic routines for optimal efficiency.

// The following auxilliary macros are also defined

#define NTL_FRADIX (...) // double-precision value of 2^NTL_ZZ_NBITS

#define NTL_SP_BOUND (1L << NTL_SP_NBITS)
#define NTL_WSP_BOUND (1L << NTL_WSP_NBITS)


// Backward compatability note:
// Prior to version 5.0, the macro NTL_NBITS was defined,
// along with the macro NTL_RADIX defined to be (1L << NTL_NBITS).
// While these macros are still available when using NTL's traditional 
// long integer package (i.e., when NTL_GMP_LIP is not set), 
// they are not available when using the GMP as the primary long integer 
// package (i.e., when NTL_GMP_LIP is set).
// Furthermore, when writing portable programs, one should avoid these macros.
// Note that when using traditional long integer arithmetic, we have
//    NTL_ZZ_NBITS = NTL_SP_NBITS = NTL_WSP_NBITS = NTL_NBITS.


// Here are some additional functions.

void clear(ZZ& x); // x = 0
void set(ZZ& x);   // x = 1

void swap(ZZ& x, ZZ& y);
// swap x and y (done by "pointer swapping", if possible).

double log(const ZZ& a);
// returns double precision approximation to log(a)

long NextPowerOfTwo(long m);
// returns least nonnegative k such that 2^k >= m

long ZZ::size() const;
// a.size() returns the number of zzigits of |a|; the
// size of 0 is 0.

void ZZ::SetSize(long k)
// a.SetSize(k) does not change the value of a, but simply pre-allocates
// space for k zzigits.

long ZZ::SinglePrecision() const;
// a.SinglePrecision() is a predicate that tests if abs(a) < NTL_SP_BOUND

long ZZ::WideSinglePrecision() const;
// a.WideSinglePrecision() is a predicate that tests if abs(a) < NTL_WSP_BOUND

long digit(const ZZ& a, long k);
// returns k-th zzigit of |a|, position 0 being the low-order
// zzigit.
// NOTE: this routine is only available when using NTL's traditional
// long integer arithmetic, and should not be used in programs
// that are meant to be portable.

void ZZ::kill();
// a.kill() sets a to zero and frees the space held by a.

ZZ::ZZ(INIT_SIZE_TYPE, long k);
// ZZ(INIT_SIZE, k) initializes to 0, but space is pre-allocated so
// that numbers x with x.size() <= k can be stored without
// re-allocation.

static const ZZ& ZZ::zero();
// ZZ::zero() yields a read-only reference to zero, if you need it.




/**************************************************************************\

                    Small Prime Generation

primes are generated in sequence, starting at 2, and up to a maximum
that is no more than min(NTL_SP_BOUND, 2^30).

Example: print the primes up to 1000

#include <NTL/ZZ.h>

main()
{
   PrimeSeq s;
   long p;

   p = s.next();
   while (p <= 1000) {
      cout << p << "\n";
      p = s.next();
   }
}

\**************************************************************************/



class PrimeSeq {
public:
   PrimeSeq();
   ~PrimeSeq();

   long next();
   // returns next prime in the sequence.  returns 0 if list of small
   // primes is exhausted.

   void reset(long b);
   // resets generator so that the next prime in the sequence is the
   // smallest prime >= b.

private:
   PrimeSeq(const PrimeSeq&);        // disabled
   void operator=(const PrimeSeq&);  // disabled

};


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲mv在线观看| 欧美综合在线视频| 久久99精品久久只有精品| 亚洲愉拍自拍另类高清精品| 亚洲天堂福利av| 成人免费在线视频观看| 18欧美亚洲精品| 中文字幕在线不卡一区| 国产精品久久久久精k8| 亚洲日本丝袜连裤袜办公室| 亚洲日本电影在线| 亚洲精品乱码久久久久久黑人| 亚洲免费在线播放| 一区二区三区加勒比av| 亚洲午夜久久久久久久久久久 | 色综合久久综合| 91丨porny丨中文| 在线视频国产一区| 91精品国产91久久综合桃花 | 午夜视频久久久久久| 奇米一区二区三区av| 精品写真视频在线观看 | 精品国一区二区三区| 26uuuu精品一区二区| 国产欧美一区二区精品忘忧草| 中文欧美字幕免费| 亚洲精品视频在线| 亚洲一区二区在线视频| 日韩高清欧美激情| 韩国女主播一区二区三区| 成人免费毛片a| 日本电影欧美片| 欧美一区二区精品在线| 国产亚洲自拍一区| 一区二区三区在线影院| 免费观看成人鲁鲁鲁鲁鲁视频| 激情深爱一区二区| 99re这里只有精品首页| 在线成人高清不卡| 欧美激情综合五月色丁香小说| 樱桃视频在线观看一区| 久久国产免费看| 99久久99久久精品免费看蜜桃| 欧美日韩亚洲丝袜制服| 久久精品视频一区二区三区| 亚洲免费成人av| 美女www一区二区| 97国产精品videossex| 91超碰这里只有精品国产| 国产日产欧产精品推荐色| 亚洲国产成人精品视频| 国产精品一区二区免费不卡| 精品视频色一区| 久久久久高清精品| 丝袜亚洲另类欧美综合| 成人国产在线观看| 91精品欧美久久久久久动漫| 日韩伦理电影网| 精品一区二区三区在线播放| 91福利在线免费观看| 久久久精品中文字幕麻豆发布| 亚洲在线视频一区| 成人午夜免费电影| 日韩免费观看高清完整版在线观看| 日韩毛片高清在线播放| 加勒比av一区二区| 欧美日韩高清一区二区三区| 成人欧美一区二区三区白人| 国产一区二区剧情av在线| 欧美日高清视频| 日韩理论电影院| 福利一区二区在线| 精品日韩一区二区三区免费视频| 亚洲最新视频在线播放| 成人aa视频在线观看| xfplay精品久久| 日本中文在线一区| 欧洲色大大久久| 亚洲欧洲日产国产综合网| 国产一区二区精品久久99| 制服丝袜中文字幕一区| 亚洲成人午夜电影| 一本到不卡精品视频在线观看| 国产片一区二区| 精品一区免费av| 欧美一区午夜视频在线观看| 偷拍与自拍一区| 欧美日韩激情一区二区| 亚洲国产一区在线观看| 日本乱人伦aⅴ精品| 亚洲视频免费观看| jizzjizzjizz欧美| 久久人人爽人人爽| 精品一二线国产| 日韩精品一区二区在线观看| 肉色丝袜一区二区| 欧美人妖巨大在线| 亚洲国产另类av| 欧美久久一二区| 五月激情综合婷婷| 91精品国产综合久久福利软件| 亚洲大片精品永久免费| 欧美日本在线视频| 日韩国产精品久久久久久亚洲| 51精品秘密在线观看| 亚洲福利一二三区| 91麻豆精品国产91久久久久久| 首页国产欧美日韩丝袜| 91精品国产综合久久婷婷香蕉| 午夜成人免费电影| 欧美一区二区啪啪| 韩国女主播成人在线观看| 久久先锋影音av鲁色资源网| 国产成人一区在线| 亚洲天堂成人在线观看| 色欧美88888久久久久久影院| 亚洲综合网站在线观看| 91精品国产高清一区二区三区| 免费不卡在线观看| 精品福利视频一区二区三区| 国产精品一区二区三区乱码 | 蜜桃在线一区二区三区| 日韩欧美中文一区二区| 国产一区在线观看视频| 国产欧美日本一区二区三区| eeuss鲁片一区二区三区| 一区二区三区高清不卡| 欧美日韩一区二区在线观看视频| 日韩电影免费在线| 久久综合网色—综合色88| caoporn国产精品| 亚洲国产美女搞黄色| 欧美变态tickle挠乳网站| 懂色中文一区二区在线播放| 亚洲欧美区自拍先锋| 欧美一区二区三区婷婷月色| 久草中文综合在线| 国产精品美女久久久久久2018| 日本高清不卡aⅴ免费网站| 免费一级欧美片在线观看| 国产香蕉久久精品综合网| 99久久99久久精品免费看蜜桃| 亚洲一二三四久久| 精品久久久久av影院| 99国产精品久久久| 免费xxxx性欧美18vr| 国产精品水嫩水嫩| 欧美日本在线播放| 国产成人精品aa毛片| 亚洲一区二区三区四区五区黄| 欧美不卡在线视频| 色av成人天堂桃色av| 国模少妇一区二区三区| 一区二区三区鲁丝不卡| 精品播放一区二区| 一本大道久久a久久综合 | 91麻豆精品国产91久久久久久 | 亚洲图片欧美综合| 国产性色一区二区| 欧美精品久久久久久久多人混战| 国产成人一级电影| 日韩成人av影视| 中文字幕字幕中文在线中不卡视频| 欧美一区二区三区在线观看视频| 99视频精品免费视频| 久久国产精品色婷婷| 一区二区三区色| 国产午夜精品美女毛片视频| 欧美三级中文字| 波波电影院一区二区三区| 免费观看在线色综合| 亚洲综合自拍偷拍| 国产精品丝袜黑色高跟| 日韩免费在线观看| 欧美日韩aaaaaa| 色老汉av一区二区三区| 国产凹凸在线观看一区二区| 日韩精品亚洲专区| 亚洲综合免费观看高清在线观看| 国产亚洲精品精华液| 日韩女优电影在线观看| 欧美精品一二三| 91久久精品午夜一区二区| 国产成人aaa| 国产一区二区视频在线播放| 日韩电影在线观看电影| 亚洲成人激情自拍| 亚洲精品国久久99热| 国产精品午夜久久| 久久久欧美精品sm网站| 精品女同一区二区| 欧美一区二区视频在线观看| 欧美色综合网站| 91福利视频久久久久| 色av一区二区| 色婷婷综合久色| 91免费看`日韩一区二区| 国产成a人亚洲精品| 国产乱码精品一区二区三区忘忧草| 蜜桃免费网站一区二区三区|