看一下这道Google Onsite和数独有点像的题目

    3  
  _ _
5|   |45
5|_ _|15

Instructions
Place numbers in the grid such that:

  1. When you look at the grid from the left, at least one number
    in that row is the border number.
  2. When you look at it from the right, the product of all numbers in that row
    is equal to the number on the right
  3. When you look at it from the top, the number on the top of the grid is present
    in that column. If there is no boundary number on top, assume there is no restricting
    condition.As long as the conditions are met, some grid locations can be left empty.

Sample Solution

In the case of the top left of the 2 by 2 grid, 
looking at it from the left means the number 5 must be in either (0,0) or (0,1).

In addition, when looking at that row from the right, the product 
of the numbers in the row must equal the boundary number on the right.

In the case of the top right of the 2 by 2 grid, 
looking at it from the right means the number 9 must be in either (0,0)
or (0,1), as 9 * 5 = 45.

Hence, the first row in the 2 by 2 grid can either be 5 and 9, or 9 and 5.

In the case of the second column (#,1), the number 3 must be in that column.

The solution for this problem, by hand, is

(0,0) = 5, (0,1) = 9, (1,0) = 5, (1,1) = 3

The question had a 9 by 9 grid with numbers all around the left, top, and right of the grid. How can I go about this computationally?