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

Степень похожести двух строк (слов). Расстояние Левенштейна - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Конденсация графа http://www.cyberforum.ru/cpp-beginners/thread587014.html
Найти число компонент сильной связности, вот может быть кто-нибудь реализовывал нечто подобное?
C++ goto проходит несколько раз Есть код: int main() { char pwd; pwd: printf("> "); getline(pwd,15); if(strstr(pwd,"1234567")) {if(pwd!=ch-1+'0') {printf("error: invalid password\n");goto pwd;}} http://www.cyberforum.ru/cpp-beginners/thread586986.html
C++ Разложение arcctg с ряд
Доброй ночи! Помогите с задачкой плиз:confusion: Вообщем, как я поняла, то надо разложить arcctg(x) в ряд Тейлора... (этот вывод я сделала из картинки) Как это реализовать на C++? P.S. Просьба не пинать меня сильно, но я в C++ не сильна... И ещё: решения этой задачи нету в гугле:gsad: есть только разложение arctg
C++ Построить график
В моей работе мне было дано уравнение U=Ri+L\frac{di}{dt}+\frac{1}{c}\int idt нужно было его решить в результате которого я получил i=(U-R*i-(i*t)/c)/L .Где R=1 kOm, L=100мГн, С=0,5мкф. разработать программу расчета переходного тока i при подаче единичного ступенчатого воздействия на вход. у меня не получается создать график да и в программе есть ошибки. Помогите исправить... #include...
C++ Объяснить программу http://www.cyberforum.ru/cpp-beginners/thread586973.html
Объясните пожалуйста каждую строку. #include <iostream> #include <string> #include <algorithm> struct is_punct { bool operator ()(std::string::value_type ch) const { return punct.find(ch) != std::string::npos;
C++ ф-ция с throw Встретил такую мне незнакомую запись: тип имя_функции( параметры ) throw(что-то) { тело_ф-ции } Что дает такая запись с throw ? подробнее

Показать сообщение отдельно
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
26.05.2012, 14:18     Степень похожести двух строк (слов). Расстояние Левенштейна
Вагнер-Фишер не устраивает?
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
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
 
 
typedef double cost_type;
 
cost_type insertion_cost(std::string::value_type ch) {
   return 1;
}
 
cost_type removal_cost(std::string::value_type ch) {
   return 1;
}
 
cost_type update_cost(std::string::value_type lhs, std::string::value_type rhs) {
   return lhs == rhs ? 0 : 1;
}
 
cost_type edit_distance(std::string const& from, std::string const& to) {
   std::vector<std::vector<cost_type>> costTable(from.length() + 1, std::vector<cost_type>(to.length() + 1));
   
   costTable[0][0] = 0;
   
   for (std::size_t j = 0; j != to.length(); ++j) {
      costTable[0][j + 1] = costTable[0][j] + insertion_cost(to[j]); 
   }
     
   for (std::size_t i = 0; i != from.length(); ++i) {
      costTable[i + 1][0] = costTable[i][0] + removal_cost(from[i]);
      
      for (std::size_t j = 0; j != to.length(); ++j) {
         costTable[i + 1][j + 1] = std::min(std::min(
            costTable[i + 1][j] + insertion_cost(to[j]),
            costTable[i][j + 1] + removal_cost(from[i])),
            costTable[i][j] + update_cost(from[i], to[j]));
      }
   }
   
   return costTable[from.length()][to.length()];
}
 
 
int main() {
   std::cout << edit_distance("leader", "lider") << std::endl;
}
http://liveworkspace.org/code/533150...4375c1a417ed15
 
Текущее время: 06:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru