2015-01-13 2 views
-2

Предположим, у меня квадрат размером 100 на 100.Возьмите квадрат и разделите его на N одинаковых размеров меньших квадратов и верните координаты их центров.

Если я скажу N=4, центры вернулись бы (25,25) (25,75) (75,25) (75,75)

Как я могу идти о создании алгоритма решить эту проблему? Благодаря

+0

Как вы думаете, первый шаг был бы? Любые идеи, что делать после этого? Измените свой вопрос, чтобы включить любые мысли, даже если вы не уверены в жизнеспособности или оптимизации. –

+0

Является ли N всегда [квадратным номером] (http://en.m.wikipedia.org/wiki/Square_number), например 4 (что равно 2 * 2) в вашем примере? Все ли меньшие квадраты одинакового размера? – Cimbali

ответ

0

Предполагая N квадратное число, вот один из способов:

import math 
nd = 100. 
N = 4 
n = int(math.sqrt(N)) 
d = nd/n 
c = [i*d+d/2 for i in range(n)] 
[[(x,y) for x in c] for y in c] 

=== Output: === 
[[(25, 25), (75, 25)], [(25, 75), (75, 75)]] 

d является реберно длиной каждого квадрата есть n вдоль каждой стороны большой площади к облицовке; их центры смещены с их краев на d/2.

+0

Улыбается, похоже, мой мозг прекратил работать сегодня ... – Sam

Смежные вопросы