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

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

?? runlength.cpp

?? 進行圖像的設置
?? CPP
字號:
#include"iostream.h"
#include<iomanip.h>
#include"stdlib.h"
#include"vector"
#include"algorithm"
#include"math.h"
using namespace std;
struct data			
{//用于存儲碼字及其編碼結果
	int mz;
	vector <char> code;
};
struct rle			
{//用于存儲每個碼字及其個數
	int length;
	int mz;
};
int get_gd(int n)	
{//用于求出編碼的長度
	int i=0;
	int j=n-1;
	while(j>0)
	{
		j=(j-j%2)/2;
		i++;
	}
	return i;
}
void Creadmz(int hd,vector<data>& vd,int hs)	
{//用于構建碼字
	int w=0;
	int ws=get_gd(hd);
	for(int i=0;i<hd;i++)
	{
		data d;
		d.mz=i+hs;
		w=i;
		while(w>0)
		{
			if(w % 2  == 1)
				d.code.push_back('1');
			else d.code.push_back('0');
			w=(w-w%2)/2.0;
		}
		for(int m = d.code.size();m <ws;m++)
			d.code.push_back('0');
		vd.push_back(d);
	}
}
void print( vector<data>vd)		
{//用于輸出編碼結果表明
	for(int i=0;i<vd.size();i++)
	{
		cout<<vd[i].mz<<" ";
		for(int j=vd[i].code.size()-1;j>=0;j--)
			cout<<vd[i].code[j];
		cout<<endl;
	}
}
void print1( vector <rle> re)		
{//輸出碼及其個數的組合
	for(int i=0;i<re.size();i++)
	{
		cout<<"<"<<re[i].mz<<","<<re[i].length<<">"<<" ";
	}
}
template <typename elem> 
void print2(vector <elem> cd,int n)	
{//輸出編,解碼結果
	int num=0;
	for(int i=0;i<cd.size();i++)
	{
		cout<<cd[i];
		num++;
		if(num%n==0) cout<<endl;
	}
	cout<<endl;
}

bool read(vector<rle> &vr,int hd,int & cor,int &rows)		
{//讀入要編碼的灰度矩陣
	int row,acr;
	rle re;
	cout<<"請輸入矩陣的行列數:"<<endl;
	cin>>row;
	cin>>acr;
	cor=acr;
	rows=row;
	cout<<"請輸入灰度值矩陣:"<<endl;
	for(int i=0;i<row;i++)
	{
		int n;
		n=re.mz=0;
		if(n==re.mz)
		{	
			cin>>n;
			if(n>=hd){vr.clear();  return false;}
		}
		for(int j=1;j<acr;)
		{
			re.mz=n;
			re.length=0;
			while(n==re.mz&&j<acr)
			{
				re.length++;
				j++;
				cin>>n;
				if(n>=hd){vr.clear();  return false;}
			}
			if(n!=re.mz)
			{
				vr.push_back(re);
				if(j==acr)
				{
					re.mz=n;
					re.length=1;
					vr.push_back(re);
				}
			}
			else if(j==acr)
			{
				if(n==re.mz)
				{
					re.length++;
					vr.push_back(re);
				}
				else {
					re.mz=n;
					re.length=1;
					vr.push_back(re);
				}
			}
			else vr.push_back(re);
		}
	}return true;
}
bool read1(vector <char>& vc,int num)
{//用于讀取要解碼的序列
	cout<<"請輸入你要解碼的序列(以'#'號結束):"<<endl;
	char ch;
	cin>>ch;
	while(ch!='#')
	{
		vc.push_back(ch);
		cin>>ch;
		if(ch!='0'&&ch!='1'&&ch!='#') {
			cout<<"你輸入的碼序列不正確請較正后rr再輸入。";
			vc.clear();
			return false;
		}
	}
	if(vc.size()%num!=0)
	{
		cout<<"你輸入的碼序列不正確請較正后再輸入。";
		vc.clear();
		return false;
	}
	return true;

}
int find(vector <data> vd,int x)
{//用于查找要編碼的灰度值是否在灰度級范圍內如果在反回相應碼在編碼序列中的位置
	int low=0;
	int high=vd.size()-1;
	int mid=0;
	while(low<=high)
	{
		mid = (low + high)/2;
		if(vd[mid].mz==x) return mid;
		else if(x<vd[mid].mz) high = mid-1;
		else low = mid +1;
	}
	cout<<"the element '"<<x<<"'not find."<<endl;
	return -1;
}
void Encode(vector <rle> vr,vector <data> vd,vector<data> vh,vector<char> &cd)
{//對灰度矩陣進行編碼操作成功則通過cd將其值代回
	int mc=0;
	int len=0;
	for(int i=0;i<vr.size();i++)
	{
		if((mc=find(vd,vr[i].mz))!=-1)
		for(int j=vd[mc].code.size()-1;j>=0;j--)
			cd.push_back(vd[mc].code[j]);
		else {
			cout<<"你要編碼的元素不在灰度級范圍內,編碼失敗."<<endl;
			exit(0);
		}
		if((len=find(vh,vr[i].length))!=-1)
		for(int k=vh[len].code.size()-1;k>=0;k--)
			cd.push_back(vh[len].code[k]);
	}
}
void coding(vector<char> vc,vector<int> &vi,int gd,int gds)
{//對輸入要解碼的序列進行解碼操作
	for(int i = 0;i<vc.size();)
	{
		int sum=0, sub=1;
		for(int j=0;j<gd;j++)
		{
			switch(vc[i])
			{
				case '1': sum +=pow(2,gd-j-1); i++;break;
				case '0': i++; break;
			}
		}
		for(int k=0;k<gds;k++)
		{
			switch(vc[i])
			{
				case '1': {sub +=pow(2,gds-k-1); i++;}break;
				case '0': i++; break;
			}
		}
		for(int s= 0;s<sub;s++)
			vi.push_back(sum);
	}
}
void efficiency(int cl,int ml,int col,int row)
{
	double ef;
	ef=1-(double)cl/(col*row*ml);
	cout<<"此游程碼的編碼效率為:"<<ef<<endl;
}
int main()
{
	int n=0;
	cout<<"請輸入灰度值:";
	cin>>n;
	int cor,row;
	int j,k;
	int judge=0;
	int code_judge=0;
	vector<data>vd;
	vector<data>vh;
	vector<char>cd;
	vector<rle>re;
	vector<char> vc;
	vector<int> vi;
	Creadmz(n,vd,0);
	cout<<"灰度級編碼結果:"<<endl;
	print(vd);
	while(judge==0&&!read(re,n,cor,row))
	{
		cout<<"你輸入的中的灰度值不符合要求請輸入'0'后重新輸入,或輸入'1'退出."<<endl;
		cin>>judge;
			if(judge!=0) exit(0);
	}
	j=get_gd(cor);
	k=get_gd(n);
	Creadmz(cor,vh,1);
	cout<<"元素個數編碼結果:"<<endl;
	print(vh);
	Encode(re,vd,vh,cd);
	cout<<"統計結果:";
	print1(re);
	cout<<endl;
	cout<<"編碼結果:"<<endl;
	print2(cd,(j+k)*cor);
	efficiency(cd.size(),k,cor,row);
	cout<<"你是否想要進行解碼演示,如果是請輸入'1',否則輸入'0'."<<endl;
	cin>>code_judge;
	if(code_judge==1)
	{
		while(!read1(vc,j+k)&&code_judge==1){}
			coding(vc,vi,k,j);
		print2(vi,cor);
	}
	return 0;
}
/*
1 1 1 1 1 1 1
2 1 3 7 7 7 7
6 5 4 3 6 4 4
1 2 3 7 7 5 6
3 3 3 3 4 4 4
6 5 4 1 2 5 3
6 5 7 4 1 2 3

00111001000000100001100011101111000010100010000001100011000010000100100001000001
10001110011010001100000110111000101100001010001000000010000100001010000110001100
00101000111000100000001000010000011000
*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一区2区| 精品视频在线看| 欧美日韩一级二级| 久久久精品日韩欧美| 亚洲电影中文字幕在线观看| 国产suv一区二区三区88区| 7777精品伊人久久久大香线蕉经典版下载| 国产欧美一区二区精品性色| 久久国内精品自在自线400部| 在线观看日韩国产| 日韩毛片视频在线看| 国产成人精品三级| 久久久噜噜噜久久人人看| 麻豆精品一二三| 91麻豆精品国产无毒不卡在线观看| 亚洲女人****多毛耸耸8| 国产91清纯白嫩初高中在线观看| 欧美一级二级在线观看| 亚洲国产精品视频| 日本道免费精品一区二区三区| 国产精品色呦呦| 风间由美一区二区三区在线观看| 日韩免费视频一区| 青青青伊人色综合久久| 91精品国产综合久久久蜜臀粉嫩| 一区二区三区不卡视频| 在线日韩国产精品| 亚洲夂夂婷婷色拍ww47| 在线观看亚洲专区| 亚洲免费视频中文字幕| 日本道色综合久久| 亚洲gay无套男同| 欧美美女视频在线观看| 日韩成人午夜电影| 日韩免费看网站| 国产一区二区伦理片| 久久久综合网站| 成人激情文学综合网| 国产精品视频免费| 91精品1区2区| 视频在线观看91| 日韩一级在线观看| 国产一区二区女| 亚洲丝袜另类动漫二区| 在线观看视频一区二区欧美日韩| 亚洲影院理伦片| 91精品福利在线一区二区三区| 日韩国产精品久久久| 精品国产一区二区精华| 国产成人精品亚洲777人妖 | 精品人在线二区三区| 久久成人av少妇免费| 国产丝袜美腿一区二区三区| 成人av电影在线| 国产精品入口麻豆九色| 波多野结衣在线aⅴ中文字幕不卡| 亚洲婷婷国产精品电影人久久| 在线观看亚洲精品| 久久精品国产成人一区二区三区 | 日韩电影一二三区| 久久精品视频一区二区三区| 91麻豆免费看| 美女视频第一区二区三区免费观看网站| 精品入口麻豆88视频| 日本国产一区二区| 国产综合色视频| 亚洲综合区在线| 久久婷婷综合激情| 在线精品视频一区二区| 狠狠色丁香久久婷婷综| 一区二区三区不卡视频在线观看| 精品国产污网站| 在线观看一区二区精品视频| 国产另类ts人妖一区二区| 亚洲国产视频一区| 日本一区二区三区国色天香| 欧美日韩精品系列| 北岛玲一区二区三区四区| 蜜桃av一区二区三区电影| 中文字幕一区二区三区四区不卡| 91麻豆精品国产91久久久资源速度| 高清不卡在线观看| 久久国产精品72免费观看| 亚洲综合偷拍欧美一区色| 中文字幕不卡在线观看| 欧美一二三区在线| 欧美亚男人的天堂| 成人激情免费视频| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲一区二区三区精品在线| 国产欧美视频在线观看| 日韩一级完整毛片| 欧美精品亚洲一区二区在线播放| 成人免费视频国产在线观看| 久久精品国产第一区二区三区| 亚洲国产欧美日韩另类综合 | 青青草视频一区| 一区二区三区91| 最新欧美精品一区二区三区| 久久久高清一区二区三区| 欧美成人aa大片| 欧美一区二区视频在线观看| 欧美日韩电影在线播放| 日本道在线观看一区二区| 91在线视频免费91| 91丨九色porny丨蝌蚪| 成人精品视频一区| 成人国产在线观看| 91亚洲资源网| 91小视频在线| 91国产丝袜在线播放| 色综合久久综合网欧美综合网| 99久久综合国产精品| 91丨九色porny丨蝌蚪| 色婷婷精品久久二区二区蜜臀av| caoporen国产精品视频| 成人av电影免费在线播放| 91在线云播放| 欧洲另类一二三四区| 欧美视频一二三区| 91精品国产高清一区二区三区蜜臀| 在线不卡欧美精品一区二区三区| 欧美日韩情趣电影| 欧美成va人片在线观看| 国产校园另类小说区| 国产精品国产馆在线真实露脸 | 色视频成人在线观看免| 欧美午夜电影在线播放| 911精品国产一区二区在线| 91精品国产91热久久久做人人| 日韩免费一区二区| 国产精品私人自拍| 亚洲国产毛片aaaaa无费看| 免费人成精品欧美精品| 国产一区二区在线影院| 91一区在线观看| 91精品国产综合久久久久久| 久久久久国产精品厨房| 亚洲美女免费在线| 视频一区在线播放| 国产成人综合在线观看| 色老头久久综合| 日韩免费性生活视频播放| 国产精品成人一区二区三区夜夜夜 | 欧美成人三级在线| 日本一区二区三区dvd视频在线| 亚洲色图丝袜美腿| 日本91福利区| 不卡的av中国片| 欧美一级理论片| 国产精品亲子伦对白| 天堂av在线一区| 成人丝袜视频网| 欧美一区二区三区的| 国产精品免费视频一区| 奇米精品一区二区三区四区| thepron国产精品| 欧美一区二区黄色| 亚洲视频一区在线| 久久成人久久爱| 97久久精品人人澡人人爽| 日韩视频在线永久播放| 亚洲精品五月天| 国产乱理伦片在线观看夜一区| 欧美午夜精品一区| 国产精品国产精品国产专区不蜜 | 欧美一区二视频| 亚洲人妖av一区二区| 国产一区二区三区av电影| 69久久夜色精品国产69蝌蚪网| 亚洲一区二区三区视频在线| 国产精品综合二区| 日韩一区二区三区高清免费看看| 自拍偷拍欧美激情| 成人综合激情网| 久久精品一区蜜桃臀影院| 蜜臀精品一区二区三区在线观看 | 一区二区在线观看免费| 国产乱码字幕精品高清av| 欧美一级精品在线| 亚洲.国产.中文慕字在线| 91啪亚洲精品| 亚洲视频电影在线| 成人中文字幕电影| 国产女人aaa级久久久级| 国内精品视频666| 欧美刺激午夜性久久久久久久| 亚洲成a人片在线观看中文| 99在线精品免费| 国产精品卡一卡二卡三| 国产成人鲁色资源国产91色综| 欧美成人伊人久久综合网| 久久精品国产**网站演员| 日韩欧美一级二级| 奇米影视一区二区三区| 欧美一区二区精品| 美国三级日本三级久久99| 日韩一区二区在线看| 日韩av电影一区| 欧美成人精品3d动漫h|