Possível duplicado:
como me adaptar às perguntas prévias ao desafio?
O InterviewStreet é uma nova empresa que atua essencialmente como um filtro para as empresas encontrarem programadores que podem codificar. Meu problema é que minha matemática é bastante fraca e eu gostaria de estudá-la, mesmo que seja do zero, para poder resolver perguntas como essa, encontradas em seu site:
Find the no of positive integral solutions for the equations (1/x) + (1/y) = 1/N! (read 1 by n factorial) Print a single integer which is the no of positive integral solutions modulo 1000007
Agora, NÃO poste a resposta para essa pergunta, ela é tirada diretamente do InterviewStreet e não deve ser postada aqui. Não é a resposta que estou procurando neste tópico. O que estou fazendo é uma pergunta mais fundamental que provavelmente pode ser respondida por alguns dos hackers da comunidade SO.
Como alguém se prepara para essa pergunta? Quais recursos estão disponíveis para eu estudar / aprender a resolver esse tipo de problema? Isso é coberto nos cursos abertos do MIT? Khan Academy? Algum livro em particular? Não sei ao certo por onde começar a resolver o problema acima e gostaria de aprender quais etapas posso tomar para fazer isso.
fonte
Respostas:
Muitas vezes, as perguntas da entrevista são projetadas para testar suas habilidades de resolução de problemas sem a necessidade de nenhum conhecimento especializado. Mas, para sua pergunta, algum conhecimento matemático ajudaria definitivamente. No mínimo, você precisará entender as definições de 'integral positivo' e 'módulo'. Um curso introdutório em teoria dos números pode ser útil, talvez este da OCW .
Também recomendo o Project Euler para problemas de amostra - é uma ótima maneira de desenvolver seu conhecimento matemático e de programação. Escolha um idioma e comece a trabalhar com os exercícios.
fonte
Você não pode se preparar para esse tipo de problema simplesmente memorizando um livro. A única maneira de ser bom na solução de problemas é fazendo muitos e muitos problemas. Eu sugiro que você obtenha um livro de algoritmos e estruturas de dados e leia-o. Isso acelerará significativamente o processo.
Lembro-me de alguns anos atrás, passei um verão inteiro (mais de 5 horas por dia) praticando a solução desses tipos de problemas apenas por diversão.
Existem vários lugares onde você pode fazer isso. O Projeto Euler é um bom ponto de partida. O UVa Online Judge também tem muitos problemas.
fonte
Esse problema específico exige que você conheça a teoria básica dos números, especificamente idéias como fatorar números compostos, algumas propriedades dos números primos e uma compreensão dos pares de números relativamente primos.
Os outros problemas no site exigem uma grande notação O, estruturas de dados simples, algoritmos básicos como classificação e combinatória. Eu passei por 3 dos 5 problemas e estou quase terminando o meu 4º, e não usei nenhum conhecimento específico depois do meu primeiro ano de aulas de ciências na faculdade. Dito isto, são problemas difíceis. Alguns deles exigem uma quantidade surpreendente de intuição matemática.
Para se preparar para esse tipo de coisa, você deve ser bom em resolver problemas matemáticos. Examine a Olimpíada (se você estiver no ensino médio) ou o exame Putnam (se estiver na faculdade) e faça os problemas de prática que encontrar. Eles são difíceis, mas você fica melhor com eles eventualmente.
Além disso, não faça a pergunta dos 30 pontos - Consultas do quadrante - primeiro. É o mais difícil de longe.
fonte