2 / 2 / 1
Регистрация: 04.12.2012
Сообщений: 202
1

Цикл перебора столбцов двумерного массива

07.11.2014, 23:03. Показов 7666. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста, как зациклить перебор столбцов до того момента пока не получится осмысленный текст. Подобрал вручную
1 2 3 4 5
О Б Е С П
Е Ч Е Н И
Е Д О С Т
У П А К Д
А Н Н Ы М
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace laba4
{
    class vertical
    {
        public static int key = 0;
        static void Main()
        {
            Console.WriteLine("Исходник: СНСКЫЕЕОАНОЕЕУАБЧДПНПИТДМ");
            var matrix = new char[5, 5];
            string input = "СНСКЫЕЕОАНОЕЕУАБЧДПНПИТДМ";
            input = input.ToLower();
            Console.WriteLine("Матрица:");
            for (int i = 0; i < input.Length; i++)
            {
                matrix[i / 5, i % 5] = input[i];
            }
 
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 5; j++)
                {
                    Console.Write("{0} ", matrix[j, i]);
                }
                Console.WriteLine();
            }
 
            Console.ReadLine();
        }
Добавлено через 11 минут
при условии того что 4 и 5 столбец известен, нужно перебрать только 3 оставшихся видимо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.11.2014, 23:03
Ответы с готовыми решениями:

Сумма столбцов двумерного массива
Создать квадратный, двумерный массив, вывести его на экран. Размеры указываются пользователем.Потом...

Не работает суммирование столбцов двумерного массива
Проблема в суммировании столбцов двумерного масива: первий столбец суммируется і заносится в...

Посчитать сумму столбцов двумерного массива
Вся задача в описании:)

Сортировка элементов столбцов двумерного массива
у меня сортировка элементов строка двумерного массива получается, но сортировка элементов столбцов...

9
8943 / 4855 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
08.11.2014, 03:13 2
Цитата Сообщение от temasey Посмотреть сообщение
пока не получится осмысленный текст
Т.е. искусственный интеллект у тебя уже есть, чтобы проанализировать текст на осмысленность?
Цитата Сообщение от temasey Посмотреть сообщение
Подобрал вручную
Честно говоря, осмысленности в этом тексте мало
0
2 / 2 / 1
Регистрация: 04.12.2012
Сообщений: 202
08.11.2014, 08:20  [ТС] 3
ViterAlex, текст: обеспечениедоступакданным, под интеллектом я понимаю просто перебор всех невозможных окончаний, пробить на на такие сочетания букв
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
public static List<String> LettersCombination = new List<string>() 
{
"ёа", "йа", "ъа", "ыа", "ьа", "эа", "яа", "фб", "чб", "щб", 
"ъб", "пв", "ъв", "пг", "чг", "щг", "ъг", "дш", "дщ", "дъ", 
"ёе", "эе", "ёё", "йё", "хё", "цё", "ыё", "эё", "яё", "йж", 
"пж", "фж", "хж", "цж", "шж", "щж", "ъж", "пз", "фз", "шз", 
"щз", "ъз", "чз", "ёи", "ъи", "бй", "вй", "гй", "дй", "жй", 
"зй", "йй", "кй", "лй", "мй", "нй", "пй", "сй", "тй", "шй", 
"щй", "ъй", "цй", "фй", "чй", "хй", "ьй", "яо", "ък", "щл", 
"ъл", "ьл", "ъм", "ън", "ёо", "ъо", "ыо", "зп", "фп", "щп", 
"ъп", "ър", "ъс", "щт", "ът", "ёу", "ъу", "ьу", "гф", "ёф", 
"жф", "цф", "чф", "щф", "ъф", "ыф", "гх", "жх", "ух", "цх", 
"ъх", "щх", "фц", "щц", "ъц", "эц", "цч", "щч", "ъч", "эч",
"жш", "шш", "щш", "ъш", "жщ", "зщ", "кщ", "хщ", "цщ", "чщ", 
"шщ", "щщ", "ъщ", "ьщ", "аъ", "гъ", "еъ", "ёъ", "иъ", "йъ", 
"къ", "лъ", "мъ", "оъ", "пъ", "ръ", "уъ", "фъ", "чъ", "цъ", 
"щъ", "ъъ", "ыъ", "эъ", "ыъ", "ьъ", "эъ", "яъ", "аь", "гь",
"еь", "ёь", "иь", "йь", "кь", "оь", "уь", "хь", "ць", "ъь", 
"ьь", "ыь", "эь", "юь", "яь", "вэ", "гэ", "еэ", "ёэ", "жэ",
"йэ", "лэ", "фэ", "цэ", "чэ", "шэ", "щэ", "ъэ", "ыэ", "яэ",
"хю", "цю", "чю", "щю", "эю", "ёя", "хя", "ця", "чя", "щя"
};
    }
}
0
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
08.11.2014, 12:59 4
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
using System;
using System.Collections.Generic;
using System.Linq;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main( string[] args )
        {
            var lettersCombination = new List<string>
            {
                "ёа", "йа", "ъа", "ыа", "ьа", "эа", "яа", "фб", "чб", "щб", 
                "ъб", "пв", "ъв", "пг", "чг", "щг", "ъг", "дш", "дщ", "дъ", 
                "ёе", "эе", "ёё", "йё", "хё", "цё", "ыё", "эё", "яё", "йж", 
                "пж", "фж", "хж", "цж", "шж", "щж", "ъж", "пз", "фз", "шз", 
                "щз", "ъз", "чз", "ёи", "ъи", "бй", "вй", "гй", "дй", "жй", 
                "зй", "йй", "кй", "лй", "мй", "нй", "пй", "сй", "тй", "шй", 
                "щй", "ъй", "цй", "фй", "чй", "хй", "ьй", "яо", "ък", "щл", 
                "ъл", "ьл", "ъм", "ън", "ёо", "ъо", "ыо", "зп", "фп", "щп", 
                "ъп", "ър", "ъс", "щт", "ът", "ёу", "ъу", "ьу", "гф", "ёф", 
                "жф", "цф", "чф", "щф", "ъф", "ыф", "гх", "жх", "ух", "цх", 
                "ъх", "щх", "фц", "щц", "ъц", "эц", "цч", "щч", "ъч", "эч",
                "жш", "шш", "щш", "ъш", "жщ", "зщ", "кщ", "хщ", "цщ", "чщ", 
                "шщ", "щщ", "ъщ", "ьщ", "аъ", "гъ", "еъ", "ёъ", "иъ", "йъ", 
                "къ", "лъ", "мъ", "оъ", "пъ", "ръ", "уъ", "фъ", "чъ", "цъ", 
                "щъ", "ъъ", "ыъ", "эъ", "ыъ", "ьъ", "эъ", "яъ", "аь", "гь",
                "еь", "ёь", "иь", "йь", "кь", "оь", "уь", "хь", "ць", "ъь", 
                "ьь", "ыь", "эь", "юь", "яь", "вэ", "гэ", "еэ", "ёэ", "жэ",
                "йэ", "лэ", "фэ", "цэ", "чэ", "шэ", "щэ", "ъэ", "ыэ", "яэ",
                "хю", "цю", "чю", "щю", "эю", "ёя", "хя", "ця", "чя", "щя"
            };
 
            var text = "обеспечениедоступакданным";
            var goodWord = new List<string>();
 
            for (int i = 2; i < text.Length; i++)
            {
                var tmpWord = SplitPosibleWorld(text, i);
 
                goodWord.AddRange( 
                    from word in tmpWord 
                    where lettersCombination.All( @let => !word.EndsWith( @let ) ) 
                    select word 
                    );
            }
 
            Console.WriteLine(string.Join("\n", goodWord));
            Console.ReadKey(true);
        }
 
        static IEnumerable<string> SplitPosibleWorld(string text, int length)
        {
            for (int i = 0; i < text.Length; i += length)
            {
                if (i + length > text.Length)
                {
                    yield return text.Substring(i);
                    break;
                }
 
                if ( text.Substring(i, length).Length >= 2 )
                    yield return text.Substring(i, length);
            }
        }
    }
}
Вот все "слова" из этой строке с "существующими" окончаниями:
Кликните здесь для просмотра всего текста
об
ес
пе
че
ни
ед
ос
ту
па
кд
ан
ны
м
обе
спе
чен
иед
ост
упа
кда
нны
м
обес
пече
ниед
осту
пакд
анны
м
обесп
ечени
едост
упакд
анным
обеспе
чениед
оступа
кданны
м
обеспеч
ениедос
тупакда
нным
обеспече
ниедосту
пакданны
м
обеспечен
иедоступа
кданным
обеспечени
едоступакд
анным
обеспечение
доступакдан
ным
обеспечениед
оступакданны
м
обеспечениедо
ступакданным
обеспечениедос
тупакданным
обеспечениедост
упакданным
обеспечениедосту
пакданным
обеспечениедоступ
акданным
обеспечениедоступа
кданным
обеспечениедоступак
данным
обеспечениедоступакд
анным
обеспечениедоступакда
нным
обеспечениедоступакдан
ным
обеспечениедоступакданн
ым
обеспечениедоступакданны
м
1
2 / 2 / 1
Регистрация: 04.12.2012
Сообщений: 202
08.11.2014, 13:07  [ТС] 5
Дмитрий3241, да это понятно, но исходная строка которую нужно расшифровать с помощью наполовину известного ключа 4ххх5 это СНСКЫЕЕОАНОЕЕУАБЧДПНПИТДМ. Надо видимо перебрать оставшиеся столбцы (123) 6-ю (3факториал) комбинациями. И выбрать по окончаниям уже конечный осмысленный результат
4 х х х 5
С Е О Б П
Н Е Е Ч И
С О Е Д Т
К А У П Д
Ы Н А Н М
Как перебрать и потом по такому правилу поменять столбцы местами я вот не знаю
0
282 / 246 / 105
Регистрация: 26.10.2012
Сообщений: 761
08.11.2014, 14:00 6
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
int Main()
{
foreach (var transaction in GetTransactions(5))
            {
               StringBuilder sb = new StringBuilder();
                for (int i = 0; i < transaction.Length; i++) sb.Append(transaction[i]);
                Console.WriteLine(sb.ToString());
            }
}
 
 
IEnumerable<int[]> GetTransactions(int n)
        {
            int[] data = new int[n];
            for (int i = 0; i < n; i++) data[i] = -1;
 
            return GetTransactions(data, 0);
        }
 
        IEnumerable<int[]> GetTransactions(int[] data, int order)
        {
            if (order == data.Length)
            {
                yield return data;
            }
 
 
 
            for (int i = 0; i < data.Length; i++)
            {
                if (data[i] >= 0) continue;
 
                int[] newData = new int[data.Length];
                Array.Copy(data, newData, data.Length);   
                newData[i] = order;
 
                foreach (var transaction in GetTransactions(newData, order + 1))
                {
                    yield return transaction;
                }
            }
        }
1
2 / 2 / 1
Регистрация: 04.12.2012
Сообщений: 202
08.11.2014, 15:56  [ТС] 7
jetyb, как это использовать?
0
282 / 246 / 105
Регистрация: 26.10.2012
Сообщений: 761
08.11.2014, 16:00 8
GetTransactions(n) перебирает и возвращает все возможные перестановки n чисел и возвращает массив числами - индексами
GetTransactions(2) : int[]{0,1} , int[]{1, 0} .
GetTransactions(3) : int[]{0,1, 2} , int[]{2,1, 0}, ...
0
2 / 2 / 1
Регистрация: 04.12.2012
Сообщений: 202
08.11.2014, 16:08  [ТС] 9
не все ветви кода возвращает значение
jetyb,
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
70
71
72
73
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace laba4
{
    class vertical
    {
        public static int key = 0;
        static void Main()
        {
            Console.WriteLine("Исходник: СНСКЫЕЕОАНОЕЕУАБЧДПНПИТДМ");
            var matrix = new char[5, 5];
            string input = "СНСКЫЕЕОАНОЕЕУАБЧДПНПИТДМ";
            input = input.ToLower();
            Console.WriteLine("Матрица:");
            for (int i = 0; i < input.Length; i++)
            {
                matrix[i / 5, i % 5] = input[i];
            }
 
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 5; j++)
                {
                    Console.Write("{0} ", matrix[j, i]);
                }
                Console.WriteLine();
            }
            Console.ReadLine();
        }
 
        int Main2()
        {
            foreach (var transaction in GetTransactions(5))
            {
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < transaction.Length; i++) sb.Append(transaction[i]);
                Console.WriteLine(sb.ToString());
            }
        }
 
 
        IEnumerable<int[]> GetTransactions(int n)
        {
            int[] data = new int[n];
            for (int i = 0; i < n; i++) data[i] = -1;
 
            return GetTransactions(data, 0);
        }
 
        IEnumerable<int[]> GetTransactions(int[] data, int order)
        {
            if (order == data.Length)
            {
                yield return data;
            }
 
            for (int i = 0; i < data.Length; i++)
            {
                if (data[i] >= 0) continue;
 
                int[] newData = new int[data.Length];
                Array.Copy(data, newData, data.Length);
                newData[i] = order;
 
                foreach (var transaction in GetTransactions(newData, order + 1))
                {
                    yield return transaction;
                }
            }
        }
0
282 / 246 / 105
Регистрация: 26.10.2012
Сообщений: 761
08.11.2014, 16:20 10
Метод Main там чисто для демонстрации использования прописан (допиши туда return 0 в конце ) , главный рабочий метод - GetTransactions.
1
08.11.2014, 16:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.11.2014, 16:20
Помогаю со студенческими работами здесь

Вычислить суммы столбцов элементов двумерного массива
помогите пожалуйста, вычислить суммы столбцов элементов двумерного массива. Максимальный...

Заполнение двумерного массива, сумма строк и столбцов
Здравствуйте, решаю всякое на сайтах по плюсам, вот тут додуматься не могу, как реализовать все это...

Найти сумму первых двух столбцов двумерного массива
Есть двумерный массив кол-во строк и столбцов мы задаем сами. Как найти сумму первых двух столбцов...

Метод, складывающий соответствующие элементы двух столбцов двумерного массива
Всем привет, никак не пойму как сделать, кто может помогите: 1.Напишите метод, складывающий...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru