Форум программистов, компьютерный форум CyberForum.ru

Восьмимерка: поиск вектора в матрице - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ rand() http://www.cyberforum.ru/cpp-beginners/thread202256.html
генератор случайных чисел rand() подскажите пожелуста как работает ета штука. что означает %200, %200-100. какой принцип роботы
C++ структуры вот нам на лекции дали эту прогу но когда вбиваю в ВС она не работает пытался разобраться не смог посмотрите пожалуйста и укажите на ошибки ) #include "stdafx.h" #include <stdio.h> #include <conio.h> #include <locale.h> #define MAXBOOKS 100 struct book { char title; http://www.cyberforum.ru/cpp-beginners/thread202243.html
C++ ребят!!простейшая программа!!
определить возможность существования треугольника,используя формулу герона!! у меня только без герона получаетсяя((
график функции C++
вот код программы: #include <stdio.h> #include <conio.h> #include <math.h> float dlina(float a,int n,float h); void main() {clrscr(); float a,b,h,s; int n; printf("vvedite a,b,h:\n");
C++ Динамическое выделение памяти. http://www.cyberforum.ru/cpp-beginners/thread202224.html
Доброго времени суток. Помогите, пожалуйста, решить задачу. Задача тривиальна - поиск и замена подстроки. Суть в чем: необходимо реализовать динамическое выделение памяти, то есть строка может быть довольно большой. Никак не разберусь с malloc. Итак, когда если я задам, например, строку (char s), то в тестах может встретиться строка большей длины. Как сделать так, чтобы этого не произошло.
C++ Расстояние между строками Добрый вечер! Напишите пожалуйста методы или алгоритмы (не код) нахождения расстояния между строками. Расстоянием между строками называется мера их схожести. Т.е чем меньше различия между строками, тем меньше между ними расстояние. Сравнить частоту вхождения символов, пар символов и т.д я догадался и сам, но может кто-то знает другие подходы? Добавлено через 1 час 2 минуты Нашёл все здесь \ подробнее

Показать сообщение отдельно
lemegeton
2917 / 1346 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
03.12.2010, 02:24     Восьмимерка: поиск вектора в матрице
Гон сиреневый. За три дня можно реализовать эту задачу тупо восьмю разными функциями, перебирающими все возможные варианты. Это не уровень чешского технологического университета. Только если кто-то решил приколоться или убедится, что абитуриент не полный баран.

Топором вырублено за несколько минут, но основная идея должна быть ясна. Прямой, ессессенно, перебор.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <iostream>
#include <vector>
#include <string>
#include <iomanip>
#include <sstream>
#include <limits>
#include <algorithm>
 
using namespace std;
 
int random_number() { return rand()%3+1; }
 
bool test(vector<vector<int> > &A, vector<int> &B, int a, int b, int iinc, int jinc)
{
    if ((a+iinc*B.size() >= A.size()) || (a+iinc*B.size() < 0) || (b+jinc*B.size() >= A[a].size()) || (b+jinc*B.size() < 0))
        return false;
    for (int i=a, j=b, c=0; c<B.size(); i+=iinc, j+=jinc, c++)
        if (A[i][j]!=B[c])
            return false;
    return true;
}
 
bool make_test(vector<vector<int> > &A, vector<int> &B, int a, int b)
{
    // тут надо бы извратиться и возвращать битовую маску направлений, их аккурат восемь.
    // оставлю на домашнее задание
    return test(A, B, a, b, -1, -1) || 
           test(A, B, a, b, -1,  0) ||
           test(A, B, a, b, -1,  1) ||
           test(A, B, a, b,  0,  1) ||
           test(A, B, a, b,  0, -1) ||
           test(A, B, a, b,  1, -1) ||
           test(A, B, a, b,  1,  0) ||
           test(A, B, a, b,  1,  1);
}
int main()
{
    srand(static_cast<unsigned int>(time(0)));
 
    int M = 10;
    int N = 10;
    int K = 3;
    vector<vector<int> > A(M, vector<int>(N));
    vector<int> B(K);
 
    for (int i=0; i<A.size(); i++)
        generate(A[i].begin(), A[i].end(), random_number);
    generate(B.begin(), B.end(), random_number);
 
    for (int i=0; i<A.size(); i++)
    {
        for (int j=0; j<A[i].size(); j++)
            cout << setw(3) << A[i][j];
        cout << endl;
    }
    cout << endl;
    for (int i=0; i<B.size(); i++)
        cout << setw(3) << B[i];
    cout << endl;
 
    for (int i=0; i<A.size(); i++)
    {
        for (int j=0; j<A[i].size(); j++)
            cout << setw(3) << make_test(A, B, i, j);
        cout << endl;
    }
 
    system("pause");
}
 
Текущее время: 05:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru