Возможна ли Google Riddle? - PullRequest
       11

Возможна ли Google Riddle?

11 голосов
/ 31 октября 2008

Мой друг получил эту бесплатную футболку с оптимизатором веб-сайта Google и пришел ко мне, чтобы попытаться выяснить, что означает передний логотип.

футболка

Итак, у меня есть пара догадок относительно того, что это значит, но мне просто интересно, есть ли что-то еще.

Мое первое предположение заключается в том, что каждый блок представляет макет страницы, а логотип «Вы должны проверить это» просто означает, что вы должны использовать оптимизатор веб-сайта Google, чтобы проверить, какой макет является лучшим. Я надеюсь, что это не ответ, это кажется простым и неудовлетворительным.

Ну, я провел последний час, пытаясь выяснить, есть ли более глубокий смысл, но безрезультатно. Поэтому я надеюсь, что кто-то сможет помочь.

Хотя я написал программу, чтобы увидеть, представляют ли блоки что-то в двоичном виде. Я выложу код ниже. Мой код проверяет каждую перестановку чтения блока как 4 бита, а затем пытается интерпретировать эти биты как буквы, шестнадцатеричные и ip-адреса.

Надеюсь, кто-то знает лучше.

#This code interprets the google t-shirt as a binary code, each box 4 bits.
# I try every permutation of counting the bits and then try to interpret these
# interpretations as letters, or hex numbers, or ip addresses.

# I need more interpretations, maybe one will find a pattern

import string

#these represent the boxes binary codes from left to right top to bottom
boxes = ['1110', '1000', '1111', '0110', '0011', '1011', '0001', '1001']

#changing the ordering
permutations = ["1234", "1243", "1324", "1342", "1423", "1432", 
                "2134", "2143", "2314", "2341", "2413", "2431",
                "3124", "3142", "3214", "3241", "3412", "3421", 
                "4123", "4132", "4213", "4231","4312", "4321"]

#alphabet hashing where 0 = a
alphabet1 = {'0000':'a', '0001':'b', '0010':'c', '0011':'d',
             '0100':'e', '0101':'f', '0110':'g', '0111':'h',
             '1000':'i', '1001':'j', '1010':'k', '1011':'l',
             '1100':'m', '1101':'n', '1110':'o', '1111':'p'}

#alphabet hasing where 1 = a
alphabet2 = {'0000':'?', '0001':'a', '0010':'b', '0011':'c',
             '0100':'d', '0101':'e', '0110':'f', '0111':'g',
             '1000':'h', '1001':'i', '1010':'j', '1011':'k',
             '1100':'l', '1101':'m', '1110':'n', '1111':'o'}

hex       = {'0000':'0', '0001':'1', '0010':'2', '0011':'3',
             '0100':'4', '0101':'5', '0110':'6', '0111':'7',
             '1000':'8', '1001':'9', '1010':'a', '1011':'b',
             '1100':'c', '1101':'d', '1110':'e', '1111':'f'} 

#code to convert from a string of ones and zeros(binary) to decimal number
def bin_to_dec(bin_string):
    l = len(bin_string)
    answer = 0
    for index in range(l):
        answer += int(bin_string[l - index - 1]) * (2**index)
    return answer        

#code to try and ping ip addresses
def ping(ipaddress):
    #ping the network addresses 
    import subprocess

    # execute the code and pipe the result to a string, wait 5 seconds
    test = "ping -t 5 " + ipaddress
    process = subprocess.Popen(test, shell=True, stdout=subprocess.PIPE)

    # give it time to respond
    process.wait()

    # read the result to a string
    result_str = process.stdout.read()

    #For now, need to manually check if the ping worked, fix later
    print result_str   

#now iterate over the permuation and then the boxes to produce the codes
for permute in permutations:
    box_codes = []
    for box in boxes:
        temp_code = ""
        for index in permute:
            temp_code += box[int(index) - 1]
        box_codes.append(temp_code)

    #now manipulate the codes using leter translation, network, whatever

    #binary
    print string.join(box_codes, "")

    #alphabet1
    print string.join( map(lambda x: alphabet1[x], box_codes), "")

    #alphabet2
    print string.join( map(lambda x: alphabet2[x], box_codes), "")

    #hex
    print string.join( map(lambda x: hex[x], box_codes), "")

    #ipaddress, call ping and see who is reachable
    ipcodes = zip(box_codes[0:8:2], box_codes[1:8:2])
    ip = ""
    for code in ipcodes:
        bin = bin_to_dec(code[0] + code[1])
        ip += repr(bin) + "."
    print ip[:-1]
    #ping(ip[:-1])
    print
    print

футболка .

Ответы [ 8 ]

15 голосов
/ 04 ноября 2008

Я отправил письмо оптимизатору веб-сайта, и он сказал: «Секретного кода нет, если вы его не найдете. :)»

5 голосов
/ 31 октября 2008

Я думаю, что это просто дизайн, ничего секретного или таинственного.

5 голосов
/ 31 октября 2008

Я думаю, что Google просто пытается показать свою точку зрения - вот несколько разных представлений одной и той же страницы, протестируйте их, посмотрите, какая из них лучше.

Какой блок тебе больше нравится?

2 голосов
/ 31 октября 2008

Что, если это ничего не значит, а что, если они придумали просто аккуратный дизайн?

1 голос
/ 04 ноября 2008

Там написано: «Вы приближаетесь».

0 голосов
/ 16 июля 2010

Это напомнило мне о клеточных автоматах:

http://www.wolframalpha.com/input/?i=rule+110

Кто-нибудь идет в этом направлении?

0 голосов
/ 27 января 2009

Вероятно, это нотация base 4?

Я бы попробовал это, но у меня нет никакого подхода к этому.

0 голосов
/ 31 октября 2008

Ну, я не вижу немедленной картины. Но если вы тестируете IP, почему бы не взять два блока из 4 в качестве одного двоичного числа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...