![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как определить соотношение ширина/высота? [D7, WinXP]
Justin © (2011-05-29 17:56:00)Помогите пожалуйста вот в чем. К примеру, имеется число 530992. Каким образом можно на основе этого построить прямоугольник с наиболее "наглядным" чтоли соотношением ширины/высоты? Т.е., к примеру, если ширина 862, а высота 616, то приумножении мы и получаем число 530992.
Т.е., конечно же, построить таким образом, чтобы высота получилась 16, а ширина 33187 - это будет не то. Хоть и прямоугольник, но...не знаю как правильно объяснить)) надеюсь, суть уловили.
Inovet (2011-05-31 22:51:00) [21]> [16] RWolf © (31.05.11 16:18)
> а вовсе не по соображениям наглядности.
Соображения несколько разные у всех
http://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D0%B1%D1%83%D0%BC%D0%B0%D0%B3%D0%B8
Anatoly Podgoretsky (2011-05-31 16:37:00) [22]
> W/H=2H/W, с [14] никак не связано...
> <Цитата>
Связана - это магия.
1+1:1.41= 2:1.41 / 1.41 = 1.41:1
Dennis I. Komarov (2011-05-31 16:32:00) [23]наврал, как раз оно и есть :)
Dennis I. Komarov (2011-05-31 16:30:00) [24]W/H=2H/W, с [14] никак не связано...
Anatoly Podgoretsky (2011-05-31 16:27:00) [25]Соотношение (наглядность) при этом не изменяется
Anatoly Podgoretsky (2011-05-31 16:25:00) [26]> RWolf (31.05.2011 16:18:16) [16]
Так это следствие
RWolf (2011-05-31 16:18:00) [27]
> при сложении вместе давали Аn+1
n-1, конечно.
RWolf (2011-05-31 16:18:00) [28]
> Jeer © (31.05.11 15:56) [14]
у меня подозрение, что это сделано всего лишь для того, чтобы два листа Аn при сложении вместе давали Аn+1, а вовсе не по соображениям наглядности.
Anatoly Podgoretsky (2011-05-31 15:59:00) [29]> Jeer (31.05.2011 15:56:14) [14]
1.41 что ли?
Jeer (2011-05-31 15:56:00) [30]Насчет критерия "наглядности" - стандартные форматы листов по ГОСТ имеют отношение:
(H/W)^2 = 2
т.е. например
(420/297)^2 = 2
Юрий Зотов (2011-05-31 15:39:00) [31]> Justin (29.05.11 19:50) [5]
> Вот и думаю, что нужно, к примеру, брать изначально за фикс длину (она
> будет равна извлеченному корню), а с высотой играться перебором.
В подобных простейших задачках думать не надо, гораздо проще и быстрее написать решение "в лоб":
procedure TForm1.Button1Click(Sender: TObject);
var
Z, W, H, I: integer;
begin
H := 0;
W := 0;
Z := StrToInt(Edit1.Text);
for I := Trunc(Sqrt(Z)) downto 1 do
begin
H := I;
W := Z div H;
if W * H = Z then
break
end;
ShowMessage(Format('W = %d, H = %d', [W, H]))
end;
oldman (2011-05-31 12:18:00) [32]
> Dimka Maslov © (30.05.11 16:31) [11]
Получим дробные ответы
Dimka Maslov (2011-05-30 16:31:00) [33]Решаем систему уравнений
b * h = 530992
b / h = 1.618
Anatoly Podgoretsky (2011-05-30 11:28:00) [34]> oldman (30.05.2011 10:29:09) [9]
4:5
16:9
16:10
oldman (2011-05-30 10:29:00) [35]
> прямоугольник с наиболее "наглядным" чтоли соотношением
> ширины/высоты?
3:4?
Inovet (2011-05-29 20:36:00) [36]> [7] Justin (29.05.11 20:23)
> Можно поподробнее
С корнем - это я не подумал. А MBo уже ответил, как надо правильно сделать.
> [1] MBo © (29.05.11 18:12)
> Разложить на множители, разобрать их на две группы так,
> чтобы произведения были по возможности близки
Взять ряд простых чисел
1, 3, 5, 7, 11, ...
Justin (2011-05-29 20:23:00) [37]>Зачем перебором. Корень к целому и дели площадь на это.
Можно поподробнее для не особо "осведомленных"? :)
>Ты в каком классе?
9-ый закончил :)
Inovet (2011-05-29 20:06:00) [38]> [5] Justin (29.05.11 19:50)
> а с высотой играться перебором.
Зачем перебором. Корень к целому и дели площадь на это. Ты в каком классе?
Justin (2011-05-29 19:50:00) [39]>Проще так: "найти множитель, наиболее близкий к квадратному корню из заданного числа".
Да-да, я от этого и отталкиваюсь.
Можно было бы, конечно, вычислить корень и построить таким образом квадрат. Но тогда теряется небольшая часть. Вот и думаю, что нужно, к примеру, брать изначально за фикс длину (она будет равна извлеченному корню), а с высотой играться перебором.
Inovet (2011-05-29 19:45:00) [40]> [3] Юрий Зотов © (29.05.11 19:05)
> "найти множитель, наиболее близкий к квадратному корню из заданного числа"
У автора наглядность какая-то требуется, может это соотношение близкое к золотому сечению, например.