Buena manera de aprender cómo resolver preguntas en InterviewStreet [cerrado]


10

Posible duplicado:
¿Cómo me adapto a las preguntas de desafío previas a la entrevista?

InterviewStreet es una nueva compañía que esencialmente actúa como un filtro para que las compañías encuentren programadores que puedan codificar. Mi problema es que mi matemática es bastante débil y me gustaría estudiarla, incluso si es desde cero, para poder resolver preguntas como esta, que se encuentran en su sitio:

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

Ahora, NO publique la respuesta a esa pregunta, está tomada directamente de InterviewStreet y no debe publicarse aquí. No es la respuesta que estoy buscando en este hilo. Lo que estoy haciendo es una pregunta más fundamental que probablemente pueda ser respondida por algunos de los piratas informáticos de la comunidad SO.

¿Cómo se prepara uno para tal pregunta? ¿Qué recursos tengo disponibles para estudiar / aprender cómo resolver este tipo de problema? ¿Está esto cubierto en el material de curso abierto MIT? ¿Academia Khan? ¿Algún libro en particular? Ni siquiera estoy seguro de dónde comenzar a resolver el problema anterior y me gustaría saber qué pasos puedo seguir para hacerlo.


no me malinterpreten, me gusta mucho este tipo de preguntas (pequeños rompecabezas para el fin de semana), pero realmente no creo que encuentren buenos programas con ellos, encontrarán geeks matemáticos (eso podría ser bueno en programmig) - y todos sabemos que esas personas obtienen el código, pero la persona a su lado nunca podrá leer su código :) ... ¿quieres saber si alguien es bueno? Siéntate y programa 2 horas en pareja con esa persona y aprenderás mucho más que si le gustan los rompecabezas de Gardner
Carsten

Respuestas:


9

A menudo, las preguntas de la entrevista están diseñadas para evaluar sus habilidades de resolución de problemas sin necesidad de ningún conocimiento especializado. Pero para su pregunta, algunos conocimientos matemáticos definitivamente ayudarían. Como mínimo, deberá comprender las definiciones de 'integral positivo' y 'módulo'. Un curso introductorio en teoría de números podría ser útil, quizás este de OCW .

También recomendaría el Proyecto Euler para problemas de muestra: es una excelente manera de desarrollar sus conocimientos matemáticos y de programación. Elige un idioma y comienza a trabajar en los ejercicios.


6

No puedes prepararte para este tipo de problemas simplemente memorizando un libro. La única manera de ser bueno en la resolución de problemas es haciendo un montón y un montón de problemas. Sin embargo, sugiero obtener un libro de algoritmos y estructuras de datos y leerlo. Acelerará significativamente el proceso.

Recuerdo que hace unos años pasé todo un verano (más de 5 horas al día) practicando la solución de este tipo de problemas solo por diversión.

Hay varios lugares donde puedes hacer esto. El proyecto Euler es un buen punto de partida. UVa Online Judge también tiene muchos problemas.


Eso es un compromiso. ¿Le pareció que le ayudó en su capacidad de programación general?
Darren Young

3
Absolutamente. Participé en la Olimpiada de Computación de EE. UU. En la escuela secundaria y pasé de ser nadie a estar entre los 20 mejores en los EE. UU. En términos de programación del "mundo real", creo que puedo decir con la mayor confianza que mis habilidades se han agudizado significativamente. Ahora no digo que todos deberían salir y hacer lo que hice, pero creo que vale la pena dedicar un tiempo a perfeccionar sus habilidades para resolver problemas. Realmente puedes aprender mucho y definitivamente es aplicable al desarrollo de software.
tskuzzy

0

Este problema particular requiere que conozcas la teoría básica de números, específicamente ideas como factorizar números compuestos, algunas propiedades de números primos y una comprensión de pares de números relativamente primos.

Los otros problemas en el sitio requieren una comprensión de la notación O grande, estructuras de datos simples, algoritmos básicos como la clasificación y la combinatoria. He superado 3 de los 5 problemas y casi he terminado con mi cuarto, y no he usado ningún conocimiento específico después de mi primer año de clases de CS en la universidad. Dicho esto, estos son problemas difíciles. Algunos de ellos requieren una sorprendente cantidad de intuición matemática.

Para prepararse para este tipo de cosas, debe ser bueno para resolver problemas matemáticos. Mire la Olimpiada (si está en la escuela secundaria) o el examen de Putnam (si está en la universidad) y resuelva los problemas de práctica que encuentre. Son difíciles, pero con el tiempo te vuelves mejor.

Además, no hagas primero la pregunta de 30 puntos: Consultas de cuadrante. Es el más difícil de lejos.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.