Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2009, 01:38   #51
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Это как раз моя дипломная задача! Только вершин там было порядка сорока, и граф замкнутый. Прикинь, да.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 05.04.2009, 01:47   #52
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Sasha_Smirnov, да, интересно ) А по какому принципу вы искали путь?
Хотя бы в общих чертах (понимаю, что раз диплом, то там не все так просто)..
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 05.04.2009 в 01:51.
Sazary вне форума Ответить с цитированием
Старый 05.04.2009, 02:20   #53
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Ну там строится матрица расстояний (типа графика дежурств), и берутся для начала минимальные. Если маршрут замкнулся (что далеко не обязательно происходит) — кратчайший маршрут найден. Иначе идёт частичный перебор. Хороший (линейный) алгоритм, до 1996 года по крайней мере, известен не был. Но достаточно было найти просто "неплохой" путь, без доказательства того, что меньшего не существует.

А между прочим, ваш KUST.rar решает т. наз. задачу о столице! Или о головном предприятии "куста" заводов. На тот случай, конечно, когда дороги прямые и "равнопроходимые".

Последний раз редактировалось Sasha_Smirnov; 05.04.2009 в 02:24.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 05.04.2009, 02:27   #54
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Познавательно )
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 05.04.2009, 05:04   #55
patriarch
Пользователь
 
Регистрация: 24.03.2009
Сообщений: 62
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
И в конце-то концов, patriarch, есть ли смысл осознавать своё задание тремя головами?
Во вторник,если преподователь выздоровел,будет программирование я у него уточню формулировку.
patriarch вне форума Ответить с цитированием
Старый 05.04.2009, 07:22   #56
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Ну четырьмя!

Уточнить — хорошо, а можно, с умным видом, показать два решения.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 07.04.2009, 15:32   #57
patriarch
Пользователь
 
Регистрация: 24.03.2009
Сообщений: 62
По умолчанию

поговорил с преподователем.Он сказал что правильно,но сделать не структурой а массивами.
Насчет задачи про матрицу,он сказал что надо использовать все цифры и делать проверку,а так как такую проверку я все равно не напишу он дал мне вместо нее другую задачу...
Цитата:
2) Грамматики, языки и автоматы.
Задано множество правил подстановки вида v(i)->w(i), где все v(i) и w(i) - слова
одной и той же длины. Определить, можно ли перевести одно заданное слово в
другое последовательным применением заданных правил подстановки. Например, если
имеются правила подстановки ba->ab, cb->bc, ca->ac, то слово cbba переводится в
слово abbc следующим образом: cbba->cbab->cabb->acbb->abcb->abbc.
Правила подстановки,начальное и конечное слово вводяться пользователем с клавиатуры.
а что за запись mas[i].x и что такое pow?

с массивами это будет выглядеть так?
Код:
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <math.h>
#include <stdlib.h>

// объявим структуру "точка"
struct Scoord
{
 double x;
 double y;
};
//------------------

int main()
{
const int N = 10;   // количество точек
const double LMAX=-10, RMAX=10;  // левая и правая границы для генерации координат
const double TMAX=-10, BMAX=10;  // верхняя и нижняя

Scoord mas[N];  // массив точек
int i,j,K;
double S,Smin;
srand(time(NULL));

for(i=0;i<N;i++)
 {
  //  разбрасываем точки
  pixels[i][0] = rand()*(RMAX-LMAX)/(double)RAND_MAX+LMAX; // тут x
  pixels[i][1] = rand()*(BMAX-TMAX)/(double)RAND_MAX+TMAX; // тут у
  printf("To4ka %d: %5.3lf  %5.3lf\n",i,pixels[i][0].pixels[i][1]);
 }
printf("\n"); 
//==================

K = 0; // считаем, что вершина K - то, что нам нужно
Smin = -1;
for(i=0;i<N;i++)   // перебираем все возможные "корни куста"
 {
  S = 0; // изначально сумма равна 0
  for(j=0;j<N;j++)  // перебираем вершины куста
   {
    if(j==i) continue;  // если текущая вершина - корень, пропускаем
    S += pow( pow(mas[j].x-mas[i].x,2) + pow(mas[j].y-mas[i].y,2),0.5);    
   }
  if(Smin==-1)  // если мы еще пока ничего не запомнили...
   {
    Smin = S;  // то запоминаем эту сумму
    K = i;    // и номер вершины-корня
   }
  else
   {
    if(S<Smin)  // иначе, если текущая сумма меньше
     {
      Smin = S;  // запоминаем ее
      K = i;
     }
   } 
 }
//=======
printf("Vershina kusta: %5.3lf %5.3lf\n", mas[K].x,mas[K].y);
printf("Summa reber = %5.3lf\n", Smin);
//---------
getch();
return 0;
}

Последний раз редактировалось patriarch; 07.04.2009 в 19:55.
patriarch вне форума Ответить с цитированием
Старый 07.04.2009, 20:39   #58
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Цитата:
Сообщение от patriarch Посмотреть сообщение
...а так как такую проверку я все равно не напишу он дал мне вместо нее другую задачу...

«...А так как другую задачу я всё равно не пойму...» и так далее?!
Проверка проще некуда, сумма пяти цифр! Зачем же так себя принижать...

А главное, все цифры использовать (их у нас 10, а их сумма 45) возможно лишь в матрице 10 на 10:

0 1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 0
2 3 4 5 6 7 8 9 0 1
3 4 5 6 7 8 9 0 1 2
4 5 6 7 8 9 0 1 2 3
5 6 7 8 9 0 1 2 3 4
6 7 8 9 0 1 2 3 4 5
7 8 9 0 1 2 3 4 5 6
8 9 0 1 2 3 4 5 6 7
9 0 1 2 3 4 5 6 7 8

(можно даже сделать так, чтобы и по диагоналям суммы были равны 45).

А вот размерность 5 на 5 позволяет использовать лишь какие-то 5 цифр, а не все.
Вам это не напоминает изначальный вариант, с простыми числами? Типа «сделай то не знаю что».

Последний раз редактировалось Sasha_Smirnov; 08.04.2009 в 00:04.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 08.04.2009, 16:13   #59
patriarch
Пользователь
 
Регистрация: 24.03.2009
Сообщений: 62
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
«...А так как другую задачу я всё равно не пойму...» и так далее?!
Проверка проще некуда, сумма пяти цифр! Зачем же так себя принижать...
Это слова препода...он всем нам заменил задачу с матрицей,решив что она слишком сложна...
patriarch вне форума Ответить с цитированием
Старый 09.04.2009, 04:10   #60
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Ясно. Но по идее это ваша ПРОГРАММА должна была сообщить, что такая матрица невозможна.

Или опять-таки можно было (чтобы решение стало возможным) чуть-чуть ослабить условие: использовать не все цифры — а любые разные цифры. Уж кому-кому, а программисту разница ясна!
Sasha_Smirnov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение матрицы методом союзной матрицы dofmat Помощь студентам 6 03.10.2011 15:01
Чистый бинарный код НикСерг Общие вопросы C/C++ 16 09.11.2009 15:06
деревья ShenDy Общие вопросы C/C++ 0 13.03.2009 19:18
Деревья Mitron Общие вопросы Delphi 5 01.02.2008 10:09
Деревья Зёка_студент Помощь студентам 1 26.12.2007 21:47