2011-06-06 3 views
1

Я застрял в этой проблеме в течение нескольких дней, мне нужна помощь.Найти количество строк/столбцов с номером элемента

У меня есть динамическое число элементов для размещения в сетке.
У меня есть ширина и высота сетки.
У меня есть отношение элемента в сетке.

И мне нужно найти количество строк и столбцов, которые мне нужны для создания моей сетки, чтобы моя сетка была как можно более полной.

Любая идея, как я могу это вычислить?

+0

Какое отношение вы говорите? Можете ли вы привести пример ширины, высоты и соотношения и ожидаемого результата? – Emmanuel

ответ

0

Ну, интуитивно, если ваша ширина w и высота h одинаковы, лучше всего взять квадратный корень из вашего количества элементов n, и все будет готово!

Пример: w = h = 5, n = 121 => x = sqrt(n) = sqrt(121) = 1111 строки и столбцы.

Итак, чтобы принять во внимание соотношение между w и h, мы теперь попытаться найти x столбцы и y строки с тем же отношением, а именно:

x * y = x * (x * h/w) = n => x = sqrt(n * w/h) 

Пример: w = 7, h = 5, n = 180 => x = sqrt(180 * 7/5) = sqrt(252) ~= 15.87 округляется до 16, и y = x * h/w ~= 15.87 * 5/7 ~= 11.33 округленный до 11. В итоге мы получаем 16 столбцов и 11 строк (176 ромов) на 180 элементов, что является правильным и сохраняет соотношение. Это может быть улучшено за счет более тщательного округления.

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