0xab178613…feaasent to0xd6878475…ab48·#21,063,942·view on Etherscan
let evolvedString = "";
let targetString = 'console.log("Hello world")';
let iterations = 100000;
let score = 0;
const validChars =
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890;?!:=^*ù%$°&#@<>€ .(")';
function generateChar(index) {
return Math.random() < 0.5
? validChars[Math.floor(Math.random() * validChars.length)]
: evolvedString[index] || " ";
}
function levenshteinDistance(a, b) {
if (a.length === 0) return b.length;
if (b.length === 0) return a.length;
let matrix = [];
for (let i = 0; i <= b.length; i++) matrix[i] = [i];
for (let j = 0; j <= a.length; j++) matrix[0][j] = j;
for (let i = 1; i <= b.length; i++) {
for (let j = 1; j <= a.length; j++) {
if (b.charAt(i - 1) === a.charAt(j - 1)) {
matrix[i][j] = matrix[i - 1][j - 1];
} else {
matrix[i][j] = Math.min(
matrix[i - 1][j - 1] + 1,
matrix[i][j - 1] + 1,
matrix[i - 1][j] + 1
);
}
}
}
return matrix[b.length][a.length];
}
for (let i = 0; i < iterations; i++) {
let newString = "";
for (let j = 0; j < targetString.length; j++) {
newString +=
evolvedString[j] === targetString[j] ? evolvedString[j] : generateChar(j);
}
evolvedString = newString;
score =
targetString.length - levenshteinDistance(evolvedString, targetString);
console.log(evolvedString + " (Score: " + score + ")");
if (evolvedString === targetString) {
console.log("Hello Friend");
break;
}
}