2
\$\begingroup\$

The algorithm takes input for a string's length for L, and the number of strings altogether for X. The hamming distance is for input D. Input Z calculates the exact amount of all possible characters in the string besides the permutations for input D.

We get a set of Z amount of characters. We divide Z by D which is S. We get B possible permutations of characters that can be generated in a list of X strings. In other words, Z divided by Y groupings of the same X should uniquely have B possible permutations within the Z characters. (For the center numerical listed string based on hamming?)

If the algorithm is, correct (or I've misled). The center of Z is at the S string which should be the B permutation.

NOTE: The concept is to visualize our strings as a number line.

Here the algorithm is written in Ancient Basic from a TRS-80 computer.

0 A=1
1 INPUT "LENGTH OF STRING";L
2 INPUT "X FOR HOW MANY";X
3 INPUT "D FOR HAMMING DISTANCE";D
4 Z = X * X * 1 * L + X * D * D * D + 1
5 S = Z / D
6 B = S / D
7 Y = S / B
8 CL = D * A ≤ X ≤ B * Y
10 P=B*Y
11 PRINT "CLOSEST STRING", CL, "P=", P
12 IF S = S * D / D THEN PRINT"S = S * D / D", S * D / D
13 IF D = Z / S THEN PRINT"D = Z / S", Z / S
15 PRINT"PROOF", P, S

I also continue with the algorithm to find where the 2nd closest string, 3rd closest, 4th and so on.

16 PRINT"WOULD YOU LIKE TO FIND CUSTOM CLOSEST STRING?";R$
17 IF R$=YES$ THEN GOTO 19
18 IF R$=NO$ THEN GOTO 19
19 INPUT "ENTER # FOR CLSE STRING";RT
20 GOTO 21
21 PRINT"YOUR CLOSEST STRING"RT, S / RT
90 NQ = S / RT
91 P = RT * NQ
92 IF P = NQ THEN PRINT P, NQ, "LUCKY"
\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.