Ученик
(94),
закрыт
8 лет назад
Globe
Просветленный
(24815)
8 лет назад
Получаете координаты трех вершин: (x1, y1) (x2, y2) (x3, y3)
Выясняете, какой угол – прямой:
(x2-x1)*(x3-x1)+(y2-y1)*(y3-y1) = 0, значит, прямой угол – при вершине (x1, y1)
тогда координаты четвертой вершины равны:
x = x1 + (x2-x1) + (x3-x1)
y = y1 + (y2-y1) + (y3-y1)
(x1-x2)*(x3-x2)+(y1-y2)*(y3-y2) = 0, значит, прямой угол – при вершине (x2, y2)
тогда координаты четвертой вершины равны:
x = x2 + (x1-x2) + (x3-x2)
y = y2 + (y1-y2) + (y3-y2)
(x1-x3)*(x2-x3)+(y1-y3)*(y2-y3) = 0, значит, прямой угол – при вершине (x3, y3)
тогда координаты четвертой вершины равны:
x = x3 + (x1-x3) + (x2-x3)
y = y3 + (y1-y3) + (y2-y3)
????
PROFIT!
Великий ЗомбиниУченик (94)
8 лет назад
“Выясняете, какой угол – прямой: “
Вот честно даже читать дальше не стала.. . я же написала ПРЯМОУГОЛьник
Великий ЗомбиниУченик (94)
8 лет назад
вот знаешь.. . это все хоть и работает, а я всеравно не знаю откуда ты все это взял. но я разберусь. спасибо)
Максим (Некромант)
Просветленный
(28848)
8 лет назад
это же элементарно
просишь в вести координаты вершины (их всего три)
это значит по два числа на вершину (Х и У) – создаешь при этом масив двух мерный
и загоняешь туда последовательно 3 отданых числа х и у
далее создаем некую логику
нас интересует всего лишь введенные первые координаты и третие
проверяем что бы х1 не равнялся x3 (тоесть проверяем что бы х первого числа не ровнялся х терьего числа ) – если не ровняется тогда х ровняется первому введеному чеслу х – а у третьему введенному числу Y – далее если все же Х третьего числа равняется Х первого числа тогда Х ровняется второго введенного числа Х а У третьего !
вот и вся логика
Великий ЗомбиниУченик (94)
8 лет назад
Что-то не сходится.
Если нам вводят координаты
1; 1
1; 3
3; 3
то, следуя вашей логике, мы получаем координаты 1; 3. Правильно я считаю? Но неизвестная вершина находится в координатах 3; 1
Сергей Марков
Мудрец
(10064)
8 лет назад
Добрый день.
Немного теории.
Исходя из свойств прямоугольника в общем виде координаты вершин (обозначим их А, B, C, D) можно представить в таком виде:
A(x, y); B(x+a,y)
C(x. y+b); D(x+a, y+b)
Можно видеть, что множество значений x имеет значения {x, x+a, x, x+a}, и множество значений y имеет значения {y, y, y+b, y+b}
Теперь представим, что мы получаем в произвольном порядке значения координат трех вершин, и если они принадлежат прямоугольнику, то они будут принадлежать указанным выше множествам и подчиняться их свойствам. Другими словами, из трех значений x – два значения обязательно будут равны, то же самое со значениями y.
Теперь дело техники.
Немного практики.
На Паскале это можно реализовать, например так:
Исходные значения координат я задал в программе, Вы же можете использовать команду ввода с клавиатуры, но тогда необходимо задать проверку координат на принадлежность их прямоугольнику.
Успехов.
Великий ЗомбиниУченик (94)
8 лет назад
“из трех значений x – два значения обязательно будут равны, то же самое со значениями y.”
Вот здесь вы наверно ошибаетесь. Если прямоугольник будет наклонен? Что-то типа этого)
Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article
Given an N * M grid. It contains exactly three ‘*’ and every other cell is a ‘.’ where ‘*’ denotes a vertex of a rectangle. The task is to find the coordinates of the fourth (missing) vertex (1-based indexing).
Examples:
Input: grid[][] = {“*.*”, “*..”, “…”}
Output: 2 3
(1, 1), (1, 3) and (2, 1) are the given coordinates of the rectangle where (2, 3) is the missing coordinate.
Input: grid[][] = {“*.*”, “..*”}
Output: 2 1
Approach: Find the coordinates of the 3 vertices by iterating through the given grid. Since a rectangle consists of 2 X-coordinates and 2 Y-coordinates and 4 vertices, every X-coordinate and Y-coordinate should occur exactly twice. We can count how many times each X and Y coordinate occurs in the 3 given vertices and the 4th one will have coordinates that occur only once.
Below is the implementation of the above approach:
C++
#include <bits/stdc++.h>
using
namespace
std;
pair<
int
,
int
> findFourthVertex(
int
n,
int
m, string s[])
{
unordered_map<
int
,
int
> row, col;
for
(
int
i = 0; i < n; i++)
for
(
int
j = 0; j < m; j++)
if
(s[i][j] ==
'*'
) {
row[i]++;
col[j]++;
}
int
x, y;
for
(
auto
tm
: row)
if
(
tm
.second == 1)
x =
tm
.first;
for
(
auto
tm
: col)
if
(
tm
.second == 1)
y =
tm
.first;
return
make_pair(x + 1, y + 1);
}
int
main()
{
string s[] = {
"*.*"
,
"*.."
,
"..."
};
int
n =
sizeof
(s) /
sizeof
(s[0]);
int
m = s[0].length();
auto
rs = findFourthVertex(n, m, s);
cout << rs.first <<
" "
<< rs.second;
}
Java
import
java.util.HashMap;
import
java.util.Map;
class
GfG
{
static
Pair<Integer, Integer> findFourthVertex(
int
n,
int
m, String s[])
{
HashMap<Integer, Integer> row =
new
HashMap<>();
HashMap<Integer, Integer> col =
new
HashMap<>();
for
(
int
i =
0
; i < n; i++)
{
for
(
int
j =
0
; j < m; j++)
{
if
(s[i].charAt(j) ==
'*'
)
{
if
(row.containsKey(i))
{
row.put(i, row.get(i) +
1
);
}
else
{
row.put(i,
1
);
}
if
(col.containsKey(j))
{
col.put(j, col.get(j) +
1
);
}
else
{
col.put(j,
1
);
}
}
}
}
int
x =
0
, y =
0
;
for
(Map.Entry<Integer, Integer> entry : row.entrySet())
{
if
(entry.getValue() ==
1
)
x = entry.getKey();
}
for
(Map.Entry<Integer, Integer> entry : col.entrySet())
{
if
(entry.getValue() ==
1
)
y = entry.getKey();
}
Pair<Integer, Integer> ans =
new
Pair<>(x +
1
, y +
1
);
return
ans;
}
public
static
void
main(String []args)
{
String s[] = {
"*.*"
,
"*.."
,
"..."
};
int
n = s.length;
int
m = s[
0
].length();
Pair<Integer, Integer> rs = findFourthVertex(n, m, s);
System.out.println(rs.first +
" "
+ rs.second);
}
}
class
Pair<A, B>
{
A first;
B second;
public
Pair(A first, B second)
{
this
.first = first;
this
.second = second;
}
}
Python3
def
findFourthVertex(n, m, s) :
row
=
dict
.fromkeys(
range
(n),
0
)
col
=
dict
.fromkeys(
range
(m),
0
)
for
i
in
range
(n) :
for
j
in
range
(m) :
if
(s[i][j]
=
=
'*'
) :
row[i]
+
=
1
;
col[j]
+
=
1
;
for
keys,values
in
row.items() :
if
(values
=
=
1
) :
x
=
keys;
for
keys,values
in
col.items() :
if
(values
=
=
1
) :
y
=
keys;
return
(x
+
1
, y
+
1
) ;
if
__name__
=
=
"__main__"
:
s
=
[
"*.*"
,
"*.."
,
"..."
]
n
=
len
(s);
m
=
len
(s[
0
]);
rs
=
findFourthVertex(n, m, s);
print
(rs[
0
], rs[
1
])
C#
using
System;
using
System.Collections.Generic;
class
GfG
{
static
Pair<
int
,
int
> findFourthVertex(
int
n,
int
m, String []s)
{
Dictionary<
int
,
int
> row =
new
Dictionary<
int
,
int
>();
Dictionary<
int
,
int
> col =
new
Dictionary<
int
,
int
>();
for
(
int
i = 0; i < n; i++)
{
for
(
int
j = 0; j < m; j++)
{
if
(s[i][j] ==
'*'
)
{
if
(row.ContainsKey(i))
{
row[i] = row[i] + 1;
}
else
{
row.Add(i, 1);
}
if
(col.ContainsKey(j))
{
col[j] = col[j] + 1;
}
else
{
col.Add(j, 1);
}
}
}
}
int
x = 0, y = 0;
foreach
(KeyValuePair<
int
,
int
> entry
in
row)
{
if
(entry.Value == 1)
x = entry.Key;
}
foreach
(KeyValuePair<
int
,
int
> entry
in
col)
{
if
(entry.Value == 1)
y = entry.Key;
}
Pair<
int
,
int
> ans =
new
Pair<
int
,
int
>(x + 1, y + 1);
return
ans;
}
public
static
void
Main(String []args)
{
String []s = {
"*.*"
,
"*.."
,
"..."
};
int
n = s.Length;
int
m = s[0].Length;
Pair<
int
,
int
> rs = findFourthVertex(n, m, s);
Console.WriteLine(rs.first +
" "
+ rs.second);
}
}
class
Pair<A, B>
{
public
A first;
public
B second;
public
Pair(A first, B second)
{
this
.first = first;
this
.second = second;
}
}
Javascript
<script>
function
findFourthVertex(n, m, s)
{
var
row =
new
Map(), col =
new
Map();
for
(
var
i = 0; i < n; i++)
for
(
var
j = 0; j < m; j++)
if
(s[i][j] ==
'*'
) {
if
(row.has(i))
row.set(i, row.get(i)+1)
else
row.set(i, 1)
if
(col.has(j))
col.set(j, col.get(j)+1)
else
col.set(j, 1)
}
var
x, y;
row.forEach((value, key) => {
if
(value == 1)
x = key;
});
col.forEach((value, key) => {
if
(value == 1)
y = key;
});
return
[x + 1, y + 1];
}
var
s = [
"*.*"
,
"*.."
,
"..."
];
var
n = s.length;
var
m = s[0].length;
var
rs = findFourthVertex(n, m, s);
document.write( rs[0] +
" "
+ rs[1]);
</script>
Time Complexity: O(N*M), as we are using a loop to traverse N*M times.
Auxiliary Space: O(N + M), as we are using extra space for map.
Last Updated :
31 May, 2022
Like Article
Save Article
Vote for difficulty
Current difficulty :
Basic
Даны координаты трех вершин прямоугольника ABCD в координатной плоскости:A(2; –1), B(5; –1), C(5; –5). Определи координаты вершины D.Для поиска прямоугольной оболочки, среди A, B и C можно сначала найти вершину, соседнюю/смежную в прямоугольнике двум другим (т.е. соединённую ребром с двумя другими). Возможны три варианта:
Выбрав вершину B, можно найти противоположную ей вершину D по “правилу параллелограмма”, просто сложив вектора A-B и C-B. В итоге, D = (A-B)+(C-B) = (-3; 0) + (0; -4) = (-3; -4). автор вопроса выбрал этот ответ лучшим msb более года назад Непонятно, в чем задача, да еще для 11 класса? На клетчатой бумаге наносим оси координат, строим три точки по координатам, соединяем их линиями и уже видно, где находится четвертая вершина. При некотором навыке, после решения десятка упражнений, это уже в уме решается. Ответ:D(2;-5) Знаете ответ? |
bsitenldefom104
Вопрос по математике:
Точки А(-3,1)В(1,1)С(1,-1) Вершины прямоугольника АВСД Найдите координаты четвертой вершины прямоугольника и вычислите его периметр и площадь,если единичный отрезок 0,5 см ПОМОГИТЕ ПОЖАЛУЙСТА!!!❤️
Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?
Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок – бесплатно!
Ответы и объяснения 1
averampey
Д(-3,-1)
(2+1)•2=6см периметр
2•1=2см/кв площадь
Знаете ответ? Поделитесь им!
Гость ?
Как написать хороший ответ?
Как написать хороший ответ?
Чтобы добавить хороший ответ необходимо:
- Отвечать достоверно на те вопросы, на которые знаете
правильный ответ; - Писать подробно, чтобы ответ был исчерпывающий и не
побуждал на дополнительные вопросы к нему; - Писать без грамматических, орфографических и
пунктуационных ошибок.
Этого делать не стоит:
- Копировать ответы со сторонних ресурсов. Хорошо ценятся
уникальные и личные объяснения; - Отвечать не по сути: «Подумай сам(а)», «Легкотня», «Не
знаю» и так далее; - Использовать мат – это неуважительно по отношению к
пользователям; - Писать в ВЕРХНЕМ РЕГИСТРЕ.
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует?
Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие
вопросы в разделе Математика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи –
смело задавайте вопросы!
Математика — наука о структурах, порядке и отношениях, исторически сложившаяся на основе операций подсчёта, измерения и описания формы объектов.