Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- vector< bitset<5> > chars;
- vector<char> decodechars;
- int main() {
- bitset<5> bs0;
- bs0.reset();
- bs0.set(0);
- chars.push_back(bs0);
- bitset<5> bs1;
- bs1.reset();
- bs1.set(0);
- bs1.set(4);
- chars.push_back(bs1);
- bitset<5> bs2;
- bs2.reset();
- bs2.set(0);
- bs2.set(3);
- chars.push_back(bs2);
- bitset<5> bs3;
- bs3.reset();
- bs3.set(3);
- bs3.set(4);
- chars.push_back(bs3);
- bitset<5> bs4;
- bs4.reset();
- bs4.set(0);
- bs4.set(2);
- chars.push_back(bs4);
- bitset<5> bs5;
- bs5.reset();
- bs5.set(2);
- bs5.set(4);
- chars.push_back(bs5);
- bitset<5> bs6;
- bs6.reset();
- bs6.set(2);
- bs6.set(3);
- chars.push_back(bs6);
- bitset<5> bs7;
- bs7.reset();
- bs7.set(0);
- bs7.set(1);
- chars.push_back(bs7);
- bitset<5> bs8;
- bs8.reset();
- bs8.set(1);
- bs8.set(4);
- chars.push_back(bs8);
- bitset<5> bs9;
- bs9.reset();
- bs9.set(4);
- chars.push_back(bs9);
- bitset<5> bsd;
- bsd.reset();
- bsd.set(2);
- chars.push_back(bsd);
- bitset<5> ss;
- ss.reset();
- ss.set(1);
- ss.set(2);
- chars.push_back(ss);
- decodechars.push_back('0');
- decodechars.push_back('1');
- decodechars.push_back('2');
- decodechars.push_back('3');
- decodechars.push_back('4');
- decodechars.push_back('5');
- decodechars.push_back('6');
- decodechars.push_back('7');
- decodechars.push_back('8');
- decodechars.push_back('9');
- decodechars.push_back('-');
- srand(time(NULL));
- for(int z = 0; z < 200; z++) {
- string sscode = "";
- for(int c = 0; c < 5; c++) {
- sscode += ss[4 - c] ? "2 " : "1 ";
- }
- string code = sscode + "1 ";
- string decode = "";
- string message = "";
- int size = rand() % 23 + 1;
- for(int i = 0; i < size; i++) {
- int index = rand() % (chars.size() - 1);
- bitset<5> bs = chars[index];
- decode += decodechars[index];
- for(int c = 0; c < 5; c++) {
- message += bs[4 - c] ? "2 " : "1 ";
- }
- message += "1 ";
- }
- code += message;
- int wc = 0, wk = 0;
- for(int i = 1; i <= size; i++) {
- char ch = decode[i - 1];
- wc += ((size - i) % 10 + 1) * (ch == '-' ? 10 : (ch - '0'));
- wk += ((size - i + 1) % 9 + 1) * (ch == '-' ? 10 : (ch - '0'));
- }
- wc %= 11;
- char c = (wc == 10 ? '-' : (wc + '0'));
- wk += (c == '-' ? 10 : (c - '0'));
- wk %= 11;
- char k = (wk == 10 ? '-' : (wk + '0'));
- bitset<5> bs = chars[c == '-' ? 10 : c - '0'];
- for(int c = 0; c < 5; c++) {
- code += bs[4 - c] ? "2 " : "1 ";
- }
- code += "1 ";
- bs = chars[k == '-' ? 10 : k - '0'];
- for(int c = 0; c < 5; c++) {
- code += bs[4 - c] ? "2 " : "1 ";
- }
- code += "1 " + sscode;
- int codesize = 23 + (size * 6);
- printf("%d\n", codesize);
- int randsize = rand() % 100 + 1;
- for(int c = 0; c < code.size(); c++) {
- char ch = code[c];
- if(ch == ' ') {
- printf(" ");
- continue;
- }
- int ez = ch - '0';
- int value = ez * randsize;
- double var = floor(value * ((double)(rand() % 6) / 100.0));
- int var2 = var * (rand() % 2 == 0 ? -1 : 1);
- printf("%d", value + var2);
- }
- printf("\n");
- }
- printf("0");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement