mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-07-13 07:13:37 +08:00
Update CRCAlgorithm.java
This commit is contained in:
@ -1,11 +1,10 @@
|
|||||||
package crcalgorithm;
|
package Others;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.concurrent.ThreadLocalRandom;
|
import java.util.concurrent.ThreadLocalRandom;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author dimgrichr
|
* @author dimgrichr
|
||||||
*/
|
*/
|
||||||
public class CRCAlgorithm {
|
public class CRCAlgorithm {
|
||||||
@ -37,6 +36,7 @@ public class CRCAlgorithm {
|
|||||||
* The algorithm's main constructor.
|
* The algorithm's main constructor.
|
||||||
* The most significant variables, used in the algorithm,
|
* The most significant variables, used in the algorithm,
|
||||||
* are set in their initial values.
|
* are set in their initial values.
|
||||||
|
*
|
||||||
* @param str The binary number P, in a string form, which is used by the CRC algorithm
|
* @param str The binary number P, in a string form, which is used by the CRC algorithm
|
||||||
* @param size The size of every transmitted message
|
* @param size The size of every transmitted message
|
||||||
* @param ber The Bit Error Rate
|
* @param ber The Bit Error Rate
|
||||||
@ -61,6 +61,7 @@ public class CRCAlgorithm {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the counter wrongMess
|
* Returns the counter wrongMess
|
||||||
|
*
|
||||||
* @return wrongMess, the number of Wrong Messages
|
* @return wrongMess, the number of Wrong Messages
|
||||||
*/
|
*/
|
||||||
public int getWrongMess() {
|
public int getWrongMess() {
|
||||||
@ -69,6 +70,7 @@ public class CRCAlgorithm {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the counter wrongMessCaught
|
* Returns the counter wrongMessCaught
|
||||||
|
*
|
||||||
* @return wrongMessCaught, the number of wrong messages, which are caught by the CRC algoriithm
|
* @return wrongMessCaught, the number of wrong messages, which are caught by the CRC algoriithm
|
||||||
*/
|
*/
|
||||||
public int getWrongMessCaught() {
|
public int getWrongMessCaught() {
|
||||||
@ -77,6 +79,7 @@ public class CRCAlgorithm {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the counter wrongMessNotCaught
|
* Returns the counter wrongMessNotCaught
|
||||||
|
*
|
||||||
* @return wrongMessNotCaught, the number of wrong messages, which are not caught by the CRC algorithm
|
* @return wrongMessNotCaught, the number of wrong messages, which are not caught by the CRC algorithm
|
||||||
*/
|
*/
|
||||||
public int getWrongMessNotCaught() {
|
public int getWrongMessNotCaught() {
|
||||||
@ -85,6 +88,7 @@ public class CRCAlgorithm {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the counter correctMess
|
* Returns the counter correctMess
|
||||||
|
*
|
||||||
* @return correctMess, the number of the Correct Messages
|
* @return correctMess, the number of the Correct Messages
|
||||||
*/
|
*/
|
||||||
public int getCorrectMess() {
|
public int getCorrectMess() {
|
||||||
@ -120,6 +124,7 @@ public class CRCAlgorithm {
|
|||||||
* If it does, the message is considered to be wrong by the receiver,so the variable wrongMessCaught changes.
|
* If it does, the message is considered to be wrong by the receiver,so the variable wrongMessCaught changes.
|
||||||
* If it does not, it is accepted, so one of the variables correctMess, wrongMessNotCaught, changes.
|
* If it does not, it is accepted, so one of the variables correctMess, wrongMessNotCaught, changes.
|
||||||
* If check == false, the diviided Message is added at the end of the ArrayList<integer> message.
|
* If check == false, the diviided Message is added at the end of the ArrayList<integer> message.
|
||||||
|
*
|
||||||
* @param check the variable used to determine, if the message is going to be checked from the receiver
|
* @param check the variable used to determine, if the message is going to be checked from the receiver
|
||||||
* if true, it is checked
|
* if true, it is checked
|
||||||
* otherwise, it is not
|
* otherwise, it is not
|
||||||
@ -141,8 +146,7 @@ public class CRCAlgorithm {
|
|||||||
for (int i = 0; i < p.size(); i++) {
|
for (int i = 0; i < p.size(); i++) {
|
||||||
if (x.get(i) == p.get(i)) {
|
if (x.get(i) == p.get(i)) {
|
||||||
x.set(i, 0);
|
x.set(i, 0);
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
x.set(i, 1);
|
x.set(i, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -156,15 +160,12 @@ public class CRCAlgorithm {
|
|||||||
for (int z : dividedMessage) {
|
for (int z : dividedMessage) {
|
||||||
message.add(z);
|
message.add(z);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
if (dividedMessage.contains(1) && messageChanged) {
|
if (dividedMessage.contains(1) && messageChanged) {
|
||||||
wrongMessCaught++;
|
wrongMessCaught++;
|
||||||
}
|
} else if (!dividedMessage.contains(1) && messageChanged) {
|
||||||
else if(!dividedMessage.contains(1) && messageChanged){
|
|
||||||
wrongMessNotCaught++;
|
wrongMessNotCaught++;
|
||||||
}
|
} else if (!messageChanged) {
|
||||||
else if(!messageChanged){
|
|
||||||
correctMess++;
|
correctMess++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -190,8 +191,7 @@ public class CRCAlgorithm {
|
|||||||
messageChanged = true;
|
messageChanged = true;
|
||||||
if (y == 1) {
|
if (y == 1) {
|
||||||
message.set(message.indexOf(y), 0);
|
message.set(message.indexOf(y), 0);
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
message.set(message.indexOf(y), 1);
|
message.set(message.indexOf(y), 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -200,5 +200,4 @@ public class CRCAlgorithm {
|
|||||||
wrongMess++;
|
wrongMess++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user