Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Deimos_
32 / 32 / 31
Регистрация: 24.11.2014
Сообщений: 237
#1

Определение нормальной формы массива

24.11.2016, 12:56. Просмотров 762. Ответов 4
Метки нет (Все метки)

Всем доброго времени суток.
Возник вопрос может не критичный но есть..
У меня имеется массив char[] Open_Text определенной длинны.
Как узнать какой наиболее подходящий(более менее квадратный) двойной массив можно для него сделать
Например Opent_Text имеет длину массива = 32
значить наиболее подходящий массив будет состоять из 6 СТРОЧЕК =>
Значить количество столбцов тоже должно быть 6 тогда 6*6 = 36 а значить пустые ячейки их 4шт заполняем мусором.

Или вот еще пример Open_Text имеет длину массива = 21
значить наиболее подходяший массив(квадратный) будет состоять из 5 строчек и 5 столбцов
5*5 = 25 => 25 - 21 = 4 пустые ячейки опять заполняем мусором.

Как бы, что дальше сделать с условием я не въезжаю что бы работала для любого количество строк
C#
1
2
3
4
5
6
7
8
9
static void What_size_matrix(char[] myArray, int row, int col) {
 
            for(int i = 1; i < myArray.Length; i++)
            {
                if (myArray.Length / i )
                    row = myArray.Length / 2;
 
            }
        }
Нужно все это для реализации "шифра Хилла"
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2016, 12:56
Ответы с готовыми решениями:

Определение текущего элемента формы
У меня вопрос: есть два ListView. Как определить програмно (если можете...

Ошибка в определение массива в структуре
public class Mas_str { public int kolvo_factov; // количество...

Определение размерностей многомерного массива
Доброго времяпровождения.хотел спросить, как подсчитать количество цепей в...

Определение позиции заданного элемента массива
Ребят помогите пожалуйста написать программу по этому заданию: &quot;Определение...

Определение длины массива при использовании LINQ
Здравствуйте, форумчане, проблема с определением длины массива после...

4
Даценд
Модератор
Эксперт .NET
4099 / 3918 / 2593
Регистрация: 20.04.2015
Сообщений: 7,108
24.11.2016, 13:29 #2
Deimos_,
попробуйте так:
C#
1
2
3
4
5
6
7
8
9
char[] Open_Text = "sdfvsdfvsdfvsdfvdfgbdfgbdwrf".ToCharArray();
int l = Open_Text.Length;
int n = (int)Math.Sqrt(Open_Text.Length);
int m = l > n * n ? n + 1 : n;
char[,] charRect = new char[m, n];
for (int i = 0; i < m; i++)
    for (int j = 0; j < n; j++)
        if (i * n + j < Open_Text.Length)
            charRect[i, j] = Open_Text[i * n + j];
1
TopLayer
768 / 569 / 300
Регистрация: 23.10.2016
Сообщений: 1,344
Завершенные тесты: 7
24.11.2016, 13:42 #3
Лучший ответ Сообщение было отмечено Deimos_ как решение

Решение

C#
1
int size = (int)Math.Sqrt(length - 1) + 1;
Добавлено через 3 минуты
int rows = size;
int columns = size * (size - 1) >= length ? size - 1 : size;
1
Deimos_
32 / 32 / 31
Регистрация: 24.11.2014
Сообщений: 237
24.11.2016, 14:20  [ТС] #4
все работает я только исправил строчку условия что бы последнюю строку тоже выводил
int m = l > n * n ? n + 2 : n + 1;
Спасибо за помошь а то после шифра лозунга уже не варит голова.
0
Даценд
Модератор
Эксперт .NET
4099 / 3918 / 2593
Регистрация: 20.04.2015
Сообщений: 7,108
24.11.2016, 15:01 #5
Цитата Сообщение от Deimos_ Посмотреть сообщение
что бы последнюю строку тоже выводил
Лучше так:
C#
1
2
3
4
5
int l = Open_Text.Length;
int n = (int)Math.Sqrt(Open_Text.Length);
int m = n;
n = l > n * n ? n + 1 : n;
m = l > m * n ? m + 1 : m;
Тогда лишняя строка добавляться не будет.
1
24.11.2016, 15:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2016, 15:01

Определение количества элементов массива из кода не перечислением
Использую такой код для вычесления значений и определения max из них...

Определение среднего арифметического ненулевых элементов одномерного массива
Программа которая определяет среднее арифметическое ненулевых элементов...

Логическое умножение массивов. Определение количества ненулевых элементов двумерного массива
Подскажите пожалуйста, как сделать две вещи : 1. Имеются два двумерных массива...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru