LINUX.ORG.RU

Разбираюсь в коде С#

 


0

2

Помогите разобраться в задаче. На плоскости задано множество точек А и точка d вне его.Подсчитать количество различных неупорядоченных троек точек a, b, c из А,для которых четырехугольник abcd является параллелограммом.

Кое-что мне удалось написать: http://pastebin.com/RLT6WCjE

Подкиньте идею, как дополнить то, что я написал или, возможно, создать что-то новое.


if ((i == k) && (j == k)) continue; i++;

Логическая ошибка. k может быть равно и i и j только если i равно j. А этот случай ты отсекаешь во внешнем цикле.

Начни писать программу словами естественного языка вручную карандашом на бумаге. Это поможет собраться с мыслями.

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от ALEX76

Искомые тройки точек ищет, но только те, которые стоят рядом. Если их разделить другими точками, то он их уже не видит.

Это что, какая-то шутка?

i-rinat ★★★★★
()
Ответ на: комментарий от ALEX76

Тут сложно чем-то помочь, вся помощь сведётся к решению за тебя.

Если ты действительно хочешь разобраться, стоит почитать какие-нибудь вводные книги по программированию, по базовым алгоритмам и структурам данных. Попытаться протрассировать программу вручную, без компьютера, чтобы понять, как работает твой код. Это будет сложно, но сделать надо, иначе дальше будет ещё сложнее.

К задаче: выбери случайные точки, выпиши их координаты и попытайся вручную решить. Потом просто формализуй свои действия, это и будет программа.

(Кстати, у тебя в коде есть выход за границы массива).

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 2)
Ответ на: комментарий от fornlr

(n choose k)

Поиздеваться решил? У него k фиксировано и равно трём, зачем тащить общий алгоритм, если можно обойтись тремя вложенными циклами?

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Про три вложенных цикла то я понял. Первый вариант кода и заключался именно в этом. Я не понял как сравнивать между ними i, k, j.

ALEX76
() автор топика

Основываясь на этом и двух предыдущих твоих тредах, рекомендую обратиться в Job.

edigaryev ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.