It was the Bitcointalk forum that inspired us to create Bitcointalksearch.org - Bitcointalk is an excellent site that should be the default page for anybody dealing in cryptocurrency, since it is a virtual gold-mine of data. However, our experience and user feedback led us create our site; Bitcointalk's search is slow, and difficult to get the results you need, because you need to log in first to find anything useful - furthermore, there are rate limiters for their search functionality.
The aim of our project is to create a faster website that yields more results and faster without having to create an account and eliminate the need to log in - your personal data, therefore, will never be in jeopardy since we are not asking for any of your data and you don't need to provide them to use our site with all of its capabilities.
We created this website with the sole purpose of users being able to search quickly and efficiently in the field of cryptocurrency so they will have access to the latest and most accurate information and thereby assisting the crypto-community at large.
import java.io.*;
public class Puzzle
{
static int perm = 0;
static char[][] pt = new char[720][];
static char b58[] = {
'1','2','3','4','5','6','7','8','9','A','B','C','D','E',
'F','G','H','J','K','L','M','N','P','Q','R','S','T','U',
'V','W','X','Y','Z','a','b','c','d','e','f','g','h','i',
'j','k','m','n','o','p','q','r','s','t','u','v','w','x',
'y','z','?','?','?','?','?','?'
};
static {
for (int i = 0; i< 720;i++) {
pt[i] = new char[6];
}
}
static void swap(char i[], int j, int k) {
char tmp = i[j];
i[j] = i[k];
i[k] = tmp;
}
static void permute(char[] i, int start, int end) {
int c;
if (start == end) {
pt[perm][0] = i[0];
pt[perm][1] = i[1];
pt[perm][2] = i[2];
pt[perm][3] = i[3];
pt[perm][4] = i[4];
pt[perm][5] = i[5];
perm++;
} else {
for (c = start; c <= end; c++) {
swap(i, start, c);
permute(i, start + 1, end);
swap(i, start, c);
}
}
}
public static void main(String args[]) throws Exception {
char[] lst = {'A','B','C','D','E','F'};
permute(lst, 0,5);
// Data file represents which vertices inside the
// 6 point hexagon are used on each character of
// the key. Labels A,B,C,D,E,F.
File f = new File("data");
FileInputStream fis = new FileInputStream(f);
InputStreamReader ir = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(ir);
String[] key = new String[51];
// Slurp in vertices file
int c=0;
while (true) {
String l = br.readLine();
if (l == null) break;
key[c] = l; c=c+1;
}
// For every permutation of vertices
for (int p=0;p<720;p++) {
// Build candidate string
StringBuffer candidate = new StringBuffer();
for (int i=0;i<51;i++) {
String keychars = key[i];
// Translate into binary given perm p
int total = 0;
for (int j=0;jint rel = keychars.charAt(j) - 'A';
int v = pt[p][rel] - 'A';
// Tricky. Rotate position of bits on each frame!
v=v-i; while (v < 0) v=v+6;
total += (int)Math.pow(2,v);
}
candidate.append(b58[total]);
}
String candidateStr = candidate.toString();
if ((candidateStr.startsWith("5H") ||
candidateStr.startsWith("5J") ||
candidateStr.startsWith("5K") ||
candidateStr.startsWith("5L")) && !candidateStr.contains("?"))
System.out.println(candidate.toString());
}
}
}
F
FC
CE
FAC
AC
AC
ABFD
FBC
FCD
E
FA
CED
BFEC
ABFED
FCD
BE
FC
EA
AC
ACDEF
DEF
BCDF
CF
ABE
BCEF
CDE
ACF
AD
BCD
ACDF
FB
BCE
AF
ACDE
CF
CFA
BDE
ABDEF
ACD
ABF
F
CD
CDEF
AB
ABCF
AE
ABEF
B
ACE
CD
ABCE