Для тех, кто ранее делал запрос Google Foobar, вы когда-нибудь сталкивались с такой ошибкой?
Verifying solution...
{
"bytes" : "CAAaIgogQ291bGQgbm90IGZpbmQgJ2Fuc3dlcicgZnVuY3Rpb24"
}
Я тестировал свое решение в Visual Studio, и он отлично работает, и он дает точный результат. У меня осталось 36 часов, чтобы отправить мое решение, и это последний вызов, поэтому я бы очень хотел получить кредит на его завершение. Вот код, который я пытаюсь проверить:
from fractions import *
from math import factorial as fac
def cycle_index(n):
return [(coeff(term), term) for term in foo(n, n)]
def foo(n, lim):
soln_set = []
if n > 0:
for x in range(lim, 0, -1):
if x == 1:
soln_set.append([(1, n)])
else:
for y in range(int(n / x), 0, -1):
recurse = foo(n - x * y, x - 1)
if len(recurse) == 0:
soln_set.append([(x, y)])
for soln in recurse:
soln_set.append([(x, y)] + soln)
return soln_set
def coeff(term):
val = 1
for x, y in term:
val *= fac(y) * x ** y
return Fraction(1, val)
def cross(cycle_a, cycle_b):
term = []
for len_a, freq_a in cycle_a:
for len_b, freq_b in cycle_b:
lcm = len_a * len_b / gcd(len_a, len_b)
term.append((lcm, int(len_a * freq_a * len_b * freq_b / lcm)))
return term
def answer(w, h, s):
total = 0
cycidx_cols = cycle_index(w)
cycidx_rows = cycle_index(h)
for col_coeff, col_cycle in cycidx_cols:
for row_coeff, row_cycle in cycidx_rows:
coeff = col_coeff * row_coeff
cycle = cross(col_cycle, row_cycle)
value = 1
for _, power in cycle:
value *= s ** power
total += coeff * value
return total
На прошлой неделе я нашел другое решение и проверил его через Foobar, но я хотел написать свой собственный, чтобы получить более глубокое понимание. Я сравнивал результаты бок о бок, и они точны, поэтому я знаю, что мой код дает точные результаты.
Из любопытства я снова повторил проверку другого решения человека, и теперь я получаю ту же ошибку с немного отличающимся результатом, даже несмотря на то, что он работал отлично, когда я пробовал на прошлой неделе:
Verifying solution...
{
"bytes" : "CAEQARABEAEQARABEAEQARABEAEQAQ"
}
Я не знаю, куда еще идти. Я был так взволнован, что я придумал свое решение проблемы, но теперь я паникую, что это не имеет значения. Какие-либо предложения?
ОБНОВЛЕНИЕ - 29 июня 2018 года, 18:00 КНТ
Последний срок прошел для меня прошлой ночью, и я не смог своевременно отправить свой код. Я обязательно использовал команду recruitme
до того, как время закончилось, на случай, если я загрузился. Тем не менее, я все еще могу просмотреть свой текущий статус, и он позволяет мне запросить еще один вызов уровня 5. Таким образом, я буду периодически проверять, будут ли снова появляться тестовые примеры, и я обязательно обновлю это, когда они это сделают. Я бы очень рекомендовал, чтобы кто-либо на более низких уровнях подождал, пока я не подтвержу, что эта проблема исправлена, прежде чем пытаться запросить другую проблему.
ОБНОВЛЕНИЕ - 30 июня 2018 года, 5:00 ч. КНТ
Согласно образцу, найденному @RobertAnsel, я завершил задачу. Я подтвердил этот шаблон путем жесткого кодирования функции answer
для вывода решений в тестовые примеры, приведенные в инструкциях. Полученные ошибки точно совпадают с прогнозируемым выходом. Я также нашел интересную тему на Форуме поддержки Google (здесь и здесь), где что-то подобное произошло с группой участников Foobar. Похоже, что их ошибка была зафиксирована Google примерно через три дня, но, к сожалению, это также похоже на то, что многим людям, у которых было время, не было другого шанса. Тем не менее, это, вероятно, решится на следующий день или два. Я буду продолжать проверять и отправлять решение до тех пор, пока я не добьюсь успеха.
ОБНОВЛЕНИЕ - 4 июля 2018 года, 12 ч. 00 м. КНТ. Эта проблема, похоже, более или менее разрешена. Для получения более подробной информации см. Выбранный ответ. Спасибо тонну @RobertAnsel за всю помощь! Некоторая дополнительная информация: я смог проверить свой текущий вызов, но после представления мне сказали, что мое время для проблемы истекло. После входа в систему я смог запросить новый вызов. Я заметил, что снова смог снова использовать команду recruitme
. Я не уверен, что это означает, что они не получили первый запрос или если вам разрешено использовать эту команду несколько раз. Несмотря ни на что, я с облегчением понимаю, что я могу продолжить работу с Foobar. Желаем удачи всем вам!