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

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

?? rsdecode.java

?? qr code encoder that encodes and decodes the data
?? JAVA
字號:
package jp.sourceforge.reedsolomon;/** * タイトル: RSコード?デコーダ * * @author Masayuki Miyazaki * http://sourceforge.jp/projects/reedsolomon/ */public class RsDecode {	public static final int RS_PERM_ERROR = -1;	public static final int RS_CORRECT_ERROR = -2;	private static final Galois galois = Galois.getInstance();	private int npar;	public RsDecode(int npar) {		this.npar = npar;	}	/**	 * Modified Berlekamp-Massey	 *	 * @param sigma int[]	 *		σ(z)格納用配列、最大npar/2 + 2個の領域が必要	 * 		σ0,σ1,σ2, ... σ<jisu>	 * @param omega int[]	 *		ω(z)格納用配列、最大npar/2 + 1個の領域が必要	 *		ω0,ω1,ω2, ... ω<jisu-1>	 * @param syn int[]	 *		シンドローム配列	 * 		s0,s1,s2, ... s<npar-1>	 * @return int	 * 		>= 0: σの次數	 * 		< 0: エラー	 */	public int calcSigmaMBM(int[] sigma, int[] omega, final int[] syn) {		int[] sg0 = new int[npar];		int[] sg1 = new int [npar];		sg0[1] = 1;		sg1[0] = 1;		int jisu0 = 1;		int jisu1 = 0;		int m = -1;		for(int n = 0; n < npar; n++) {			// 判別式を計算			int d = syn[n];			for(int i = 1; i <= jisu1; i++) {				d ^= galois.mul(sg1[i], syn[n - i]);			}			if(d != 0) {				int logd = galois.toLog(d);				int[] wk = new int[npar];				for(int i = 0; i <= n; i++) {					wk[i] = sg1[i] ^ galois.mulExp(sg0[i], logd);				}				int js = n - m;				if(js > jisu1) {					m = n - jisu1;					jisu1 = js;					if(jisu1 > npar / 2) {						return -1;				// σの次數がnpar / 2を超えたらエラー					}					for(int i = 0; i <= jisu0; i++) {						sg0[i] = galois.divExp(sg1[i], logd);					}					jisu0 = jisu1;				}				sg1 = wk;			}			System.arraycopy(sg0, 0, sg0, 1, Math.min(sg0.length - 1, jisu0));			sg0[0] = 0;			jisu0++;		}		galois.mulPoly(omega, sg1, syn);		System.arraycopy(sg1, 0, sigma, 0, Math.min(sg1.length, sigma.length));		return jisu1;	}	/**	 * 最終エラー位置のセット	 * @param pos	 * 		誤り位置格納用初列	 * @param n	 * 		データ長	 * @param last	 * 		エラー位置	 * @return	 * 		0: 正常終了	 * 		< 0: エラー	 */	private int setLastErrorPos(int[] pos, int n, int last) {		if(galois.toLog(last) >= n) {			return RS_CORRECT_ERROR;	// 範囲外なのでエラー		}		pos[0] = last;		return 0;	}	/**	 * チェン探索により誤り位置を求める	 *		σ(z) = 0の解を探索する	 *		ただし、探索はデータ長以內の解のみで	 *		jisu個の解が見つからなければ、エラーとする	 * @param pos int[]	 * 		誤り位置格納用配列、jisu個の領域が必要	 * @param n int	 * 		データ長	 * @param jisu int	 * 		σの次數	 * @param sigma int[]	 * 		σ0,σ1,σ2, ... σ<jisu>	 * @return int	 *		0: 正常終了	 *		< 0: エラー	 */	private int chienSearch(int[] pos, int n, int jisu, final int[] sigma) {		/*		 * σ(z) = (1-α^i*z)(1-α^j*z)(1-α^k*z)		 *       = 1 + σ1z + σ2z^2 +...		 * σ1 = α^i + α^j + α^k		 * つまりσ1は全ての解の合計となっている。上記の性質を利用して、プチ最適化		 * last = σ1から、見つけた解を次々と引いていくことにより、最後の解はlastとなる		 */		int last = sigma[1];		if(jisu == 1) {			// 次數が1ならばlastがその解である			return setLastErrorPos(pos, n, last);		}		int posIdx = jisu - 1;		// 誤り位置格納用インデックス		for(int i = 0; i < n; i++) {			/*			 * σ(z)の計算			 * w を1(0乗の項)に初期化した後、殘りの項<1..jisu>を加算			 * z = 1/α^i = α^Iとすると			 * σ(z) = 1 + σ1α^I + σ2(α^I)^2 + σ3(α^I)^3 + ... + σ<jisu>/(α^I)^<jisu>			 *      = 1 + σ1α^I + σ2α^(I*2) + σ3α^(I*3) + ... + σ<jisu>α^(I*<jisu>)			 */			int z = 255 - i;					// z = 1/α^iのスカラー			int wk = 1;			for(int j = 1; j <= jisu; j++) {				wk ^= galois.mulExp(sigma[j], (z * j) % 255);			}			if(wk == 0) {				int pv = galois.toExp(i);		// σ(z) = 0の解				last ^=  pv;					// lastから今見つかった解を引く				pos[posIdx--] = pv;				if(posIdx == 0) {					// 殘りが一つならば、lastがその解である					return setLastErrorPos(pos, n, last);				}			}		}		// 探索によりデータ長以內に、jisu個の解が見つからなかった		return RS_CORRECT_ERROR;	}	/**	 * Forney法で誤り訂正を行う	 *		σ(z) = (1-α^i*z)(1-α^j*z)(1-α^k*z)	 *		σ'(z) = α^i * (1-α^j*z)(1-α^k*z)...	 *			   + α^j * (1-α^i*z)(1-α^k*z)...	 *			   + α^k * (1-α^i*z)(1-α^j*z)...	 *		ω(z) = (E^i/(1-α^i*z) + E^j/(1-α^j*z) + ...) * σ(z)	 *			  = E^i*(1-α^j*z)(1-α^k*z)...	 *			  + E^j*(1-α^i*z)(1-α^k*z)...	 *			  + E^k*(1-α^i*z)(1-α^j*z)...	 *		∴ E^i = α^i * ω(z) / σ'(z)	 * @param data int[]	 *		入力データ配列	 * @param length int	 *		入力データ長さ	 * @param jisu int	 *		σの次數	 * @param pos int[]	 *		誤り位置配列	 * @param sigma int[]	 *		σ0,σ1,σ2, ... σ<jisu>	 * @param omega int[]	 *		ω0,ω1,ω2, ... ω<jisu-1>	 */	private void doForney(int[] data, int length, int jisu, int[] pos, int[] sigma, int[] omega) {		for(int i = 0; i < jisu; i++) {			int ps = pos[i];			int zlog = 255 - galois.toLog(ps);					// zのスカラー			// ω(z)の計算			int ov = omega[0];			for(int j = 1; j < jisu; j++) {				ov ^= galois.mulExp(omega[j], (zlog * j) % 255);		// ov += ωi * z^j			}			// σ'(z)の値を計算(σ(z)の形式的微分)			int dv = sigma[1];			for(int j = 2; j < jisu; j += 2) {				dv ^= galois.mulExp(sigma[j + 1], (zlog * j) % 255);	// dv += σ<j+1> * z^j			}			/*			 * 誤り訂正 E^i = α^i * ω(z) / σ'(z)			 * 誤り位置の範囲はチェン探索のときに保証されているので、			 * ここではチェックしない			 */			data[galois.toPos(length, ps)] ^= galois.mul(ps, galois.div(ov, dv));		}	}	/**	 * RSコードのデコード	 *	 * @param data int[]	 *		入力データ配列	 * @param length int	 * 		パリティを含めたデータ長	 * @param noCorrect boolean	 * 		チェックのみで訂正は行わない	 * @return int	 * 		0: エラーなし	 * 		> 0: 戻り値個の誤りを訂正した	 * 		< 0: 訂正不能	 */	public int decode(int[] data, int length, boolean noCorrect) {		if(length < npar || length > 255) {			return RS_PERM_ERROR;		}		// シンドロームを計算		int[] syn = new int[npar];		if(galois.calcSyndrome(data, length, syn)) {			return 0;		// エラー無し		}		// シンドロームよりσとωを求める		int[] sigma = new int[npar / 2 + 2];		int[] omega = new int[npar / 2 + 1];		int jisu = calcSigmaMBM(sigma, omega, syn);		if(jisu <= 0) {			return RS_CORRECT_ERROR;		}		// チェン探索により誤り位置を求める		int[] pos = new int[jisu];		int r = chienSearch(pos, length, jisu, sigma);		if(r < 0) {			return r;		}		if(!noCorrect) {			// 誤り訂正			doForney(data, length, jisu, pos, sigma, omega);		}		return jisu;	}	public int decode(int[] data, int length) {		return decode(data, length, false);	}	public int decode(int[] data) {		return decode(data, data.length, false);	}/*	public static void main(String[] args) {		int[] data = new int[] {			32, 65, 205, 69, 41, 220, 46, 128, 236,			42, 159, 74, 221, 244, 169, 239, 150, 138, 70, 237, 85, 224, 96, 74, 219, 61		};		RsDecode dec = new RsDecode(17);		int r = dec.decode(data);		System.out.println("r=" + r);		for(int i = 0; i < 8; i++) {			data[i] ^= (int) (Math.random() * 256);		}		System.out.println(java.util.Arrays.toString(data));		r = dec.decode(data);		System.out.println("r=" + r);		System.out.println(java.util.Arrays.toString(data));	}*/}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合久久综合九色| 欧美性大战久久久| 日韩国产在线一| 亚洲福利视频一区| 亚洲一区二区三区爽爽爽爽爽| 日本一区二区高清| 国产精品久久久久久久第一福利 | 亚洲激情综合网| 亚洲毛片av在线| 伊人一区二区三区| 日日夜夜精品视频免费| 日本亚洲视频在线| 美女爽到高潮91| 久久99日本精品| 成人免费毛片a| 色老综合老女人久久久| 欧美性一区二区| 日韩一二在线观看| 国产三级精品视频| 亚洲精品视频在线观看网站| 性做久久久久久免费观看| 日韩在线观看一区二区| 精品一区二区三区在线视频| 国产成人免费在线视频| 91亚洲精品一区二区乱码| 精品污污网站免费看| 精品噜噜噜噜久久久久久久久试看| 欧美精品一区二区三区视频| 国产精品免费看片| 亚洲自拍偷拍欧美| 九九国产精品视频| 91麻豆国产福利在线观看| 91精品国产色综合久久不卡蜜臀| 久久久久久久久99精品| 一区二区欧美在线观看| 九色综合狠狠综合久久| 色综合 综合色| 久久综合九色综合97婷婷女人| 日本一二三不卡| 午夜av电影一区| 懂色av一区二区夜夜嗨| 8x福利精品第一导航| 国产精品初高中害羞小美女文| 五月婷婷综合在线| 成人av免费观看| 精品日本一线二线三线不卡| 亚洲欧美国产77777| 国模一区二区三区白浆| 欧美日韩成人综合| 亚洲私人影院在线观看| 国产精品一区二区久久精品爱涩 | 欧美成va人片在线观看| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 日韩成人免费看| 91成人免费网站| 国产精品国模大尺度视频| 麻豆精品一区二区综合av| 欧洲精品一区二区| 中文字幕一区二区三区精华液| 久久国产免费看| 91精品国产免费| 亚洲精品视频在线观看网站| 高清日韩电视剧大全免费| 欧美va在线播放| 日韩成人精品在线观看| 91超碰这里只有精品国产| 一区二区三区在线观看网站| 91在线无精精品入口| 国产精品毛片无遮挡高清| 国产成人8x视频一区二区 | 久久69国产一区二区蜜臀| 欧美吞精做爰啪啪高潮| 一区二区三区四区蜜桃| 不卡视频免费播放| 国产精品久久久久永久免费观看| 国产综合久久久久久鬼色| 久久午夜电影网| 国产高清在线精品| 日本一区二区三区dvd视频在线| 国产一区啦啦啦在线观看| 久久午夜老司机| 成人污视频在线观看| 亚洲色图一区二区| 欧美午夜免费电影| 午夜精品123| 日韩欧美中文字幕精品| 狠狠狠色丁香婷婷综合激情| 久久久天堂av| 99精品欧美一区二区蜜桃免费 | 亚洲一区日韩精品中文字幕| 97精品国产露脸对白| 夜夜亚洲天天久久| 3751色影院一区二区三区| 麻豆久久一区二区| 欧美国产精品久久| 在线区一区二视频| 奇米777欧美一区二区| 日韩欧美的一区| 成人国产精品视频| 亚洲午夜久久久久久久久电影院 | 麻豆中文一区二区| 国产欧美一二三区| 欧美无砖砖区免费| 精久久久久久久久久久| **欧美大码日韩| 日韩免费观看2025年上映的电影 | 亚洲欧美在线视频| 欧美一区二区三区思思人| 国产盗摄精品一区二区三区在线| 国产精品盗摄一区二区三区| 欧美日韩国产影片| 国产成人精品1024| 日本欧美一区二区三区乱码| 国产亚洲欧美日韩在线一区| 一本久久a久久精品亚洲| 看电视剧不卡顿的网站| 综合久久综合久久| 欧美成人精品3d动漫h| 色狠狠综合天天综合综合| 精品一区二区免费| 香蕉av福利精品导航| 国产精品毛片久久久久久久 | 久久99日本精品| 亚洲国产视频a| 亚洲欧洲日韩在线| 久久影院电视剧免费观看| 欧美日韩国产经典色站一区二区三区| 国产精品456露脸| 日韩国产成人精品| 亚洲黄一区二区三区| 国产欧美一区二区精品婷婷| 欧美一区二区三区婷婷月色| 日本高清免费不卡视频| 成人a区在线观看| 精品一区二区三区影院在线午夜 | 7777精品伊人久久久大香线蕉| 成人性生交大片免费看视频在线| 日本不卡一区二区三区| 一区二区三区日韩欧美| 亚洲婷婷综合久久一本伊一区| 久久综合色8888| 精品久久久久久无| 欧美一区二区在线观看| 欧美情侣在线播放| 欧美日韩一区二区三区在线| 91久久国产最好的精华液| 成人激情小说网站| 不卡的av在线播放| 波多野结衣91| 99久久99久久精品免费看蜜桃| 国产精华液一区二区三区| 国产v日产∨综合v精品视频| 国产一区二区免费看| 国产高清一区日本| 成人av电影免费观看| 99久久免费视频.com| 99精品久久只有精品| 色呦呦国产精品| 在线免费一区三区| 欧美日本一区二区三区四区| 欧美日韩国产中文| 日韩欧美一二三| 久久久久久久性| 国产精品久久久久久亚洲毛片 | 日韩限制级电影在线观看| 欧美一区二区女人| 久久综合久久鬼色中文字| 久久久99精品久久| 亚洲品质自拍视频网站| 亚洲午夜羞羞片| 激情综合色综合久久| 丁香婷婷综合网| 精品视频一区三区九区| 欧美一个色资源| 国产欧美日韩另类一区| 亚洲欧美日韩中文播放 | 日韩视频一区二区| 国产欧美一区二区精品忘忧草| 亚洲欧洲av一区二区三区久久| 亚洲国产日日夜夜| 精彩视频一区二区| 97精品国产露脸对白| 91精品国产一区二区| 国产精品蜜臀在线观看| 亚洲国产一区二区三区| 另类小说视频一区二区| 99国内精品久久| 日韩欧美色综合网站| 亚洲欧洲性图库| 久久国产视频网| 在线看一区二区| www国产精品av| 亚洲va国产va欧美va观看| 国产精品99久久久久久久女警| 欧美日韩综合一区| 欧美经典一区二区| 日韩精品一二三区| 91丨porny丨户外露出| 精品福利二区三区| 婷婷国产在线综合|