Уведомления

Jabber-конференция сообщества: pythonua@conference.jabber.ru

#1 Апрель 3, 2007 20:33:44

Кристина
От:
Зарегистрирован: 2007-04-03
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите, пожалуйста, решить задачу.

MICROSOFT VISIAL STUDIO)
Помогите, пожалуйста, решить задачу на языке C#.
Условие:
Дано множество точек на плоскости. Можно ли найти окружность с центром координат, на которой лежит наибольшее количество точек данного множества



Отредактировано (Апрель 3, 2007 22:14:08)

Офлайн

#2 Апрель 3, 2007 20:55:57

Pelmen
От:
Зарегистрирован: 2007-03-31
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите, пожалуйста, решить задачу.

что такое окружность с центром координат?
Окружность на которой лежит центр координат?
или центр окружности находится в центре координат?



Офлайн

#3 Апрель 3, 2007 21:08:48

Кристина
От:
Зарегистрирован: 2007-04-03
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите, пожалуйста, решить задачу.

С центром в начале координат.



Офлайн

#4 Апрель 3, 2007 21:21:39

Pelmen
От:
Зарегистрирован: 2007-03-31
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите, пожалуйста, решить задачу.

самый простой способ - простой перебор, так как каждая точка может принадлежать только одной окружности - соответственно определяем для каждой точки уравнение описывающее окружность проходящую через нее, и определяем сколько точек лежит на этой окружности … вооще я даже самого уравнения окружности уже не помню, не напомнишь?



Офлайн

#5 Апрель 3, 2007 22:26:19

Кристина
От:
Зарегистрирован: 2007-04-03
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите, пожалуйста, решить задачу.

class Circle
using System;
using System.Collections.Generic;
using System.Text;

namespace Geometry
{
// Наследовать можно только от одного класса!
class Circle : Figure
{
public Circle(double r)
{
base.FigureCount = 1;
base.FigureParams = new double;
base.FigureParams = r;
if (r > 0) base.reality = true;
else base.reality = false;
}



Офлайн

#6 Апрель 3, 2007 22:27:38

Кристина
От:
Зарегистрирован: 2007-04-03
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите, пожалуйста, решить задачу.

if (r > 0) base.reality = true;
else base.reality = false;
}

public override double Area()
{
return Math.PI*base.FigureParams*base.FigureParams;
}
public override double LengthOfBorder()
{
return 2*Math.PI*base.FigureParams;
}
}
}



Офлайн

#7 Апрель 3, 2007 22:34:50

Pelmen
От:
Зарегистрирован: 2007-03-31
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите, пожалуйста, решить задачу.

это не питон во-первых
во вторых учти, что окружности с одинаковыми радиусами могут лежать в разных плоскостях



Офлайн

#8 Апрель 3, 2007 22:42:23

alafin
Root
От: Киев, Украина
Зарегистрирован: 2006-04-06
Сообщения: 756
Репутация: +  2  -
Профиль   Отправить e-mail  

Помогите, пожалуйста, решить задачу.

Кристина, это же C# , да и к тому же class Circle как-то не при делах в данном коде.



Офлайн

#9 Апрель 3, 2007 23:21:37

Кристина
От:
Зарегистрирован: 2007-04-03
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите, пожалуйста, решить задачу.

V - мн-во точек (x1,y1) …. (xn,yn)
1 шаг:
r*r=x1*x1+y1*y1
расстояние до 1 точки
2 шаг:
ищем расстояния до всех точек
если совпадает то накручиваем счетчик
3 шаг:
повторяем 1 2 шаг по всем точкам - ишем наибольший счетчик
вышеизложенный алгоритм можно оптимизировать (естесствено)



Офлайн

#10 Апрель 4, 2007 07:36:31

Pelmen
От:
Зарегистрирован: 2007-03-31
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите, пожалуйста, решить задачу.

Кристина, обрати внимание на #7



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version