Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/190: Рейтинг темы: голосов - 190, средняя оценка - 4.79
0 / 0 / 0
Регистрация: 01.04.2012
Сообщений: 10

В квадрате размера 3 на 3 клетки расставить числа от 1 до 9

01.04.2012, 22:51. Показов 40219. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго вечера!
Нужна помощь с одним заданием, никак не могу додуматься, как его реализовать.
Задание: В квадрате размера 3 на 3 клетки расставить числа от 1 до 9 так, чтобы суммы чисел, стоящих в каждом вертикальном ряду, в каждом горизонтальным ряду, а также на любой диагонали, были равны.
Заранее благодарен!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.04.2012, 22:51
Ответы с готовыми решениями:

В квадрате размером 3x3 клетки расставить числа 1,2,3,4,5,6,7,8,9
"Расстановка девяти чисел". В квадрате размером 3*3 клетки расставить числа 1,2,3,4,5,6,7,8,9 так,чтобы суммы чисел,стоящих в каждом...

В квадрате размером 4 х 4 клетки расставить 16 букв (по четыре буквы а, b, c, d) так, чтобы в каждом горизонта
В квадрате размером 4 х 4 клетки расставить 16 букв (по четыре буквы а, b, c, d) так, чтобы в каждом горизонтальном и в каждом вертикальном...

Найти формулу числа квадратов p-размера в квадрате n-размера
Здравствуйте! Допустим у нас есть квадрат 3 * 3, обозначим размер квадрата как n (внутри квадрат по умолчанию заполнен квадратами 1*1, в...

9
 Аватар для NiceGuyEddy
220 / 143 / 35
Регистрация: 25.06.2010
Сообщений: 383
02.04.2012, 11:36
Темы про магические квадраты Вам в помощь.
0
 Аватар для Дмитрий3241
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
Записей в блоге: 6
02.04.2012, 12:01
Code
1
1 + ((i - j + (n - 1) / 2) % n)n + ((i + j + (n + 1) / 2) %  n)
n <= 4 - размерность квадрата.
i, j - координаты клетки.
0
3 / 3 / 0
Регистрация: 31.03.2012
Сообщений: 72
02.04.2012, 12:14
Цитата Сообщение от draimen Посмотреть сообщение
Всем доброго вечера!
Нужна помощь с одним заданием, никак не могу додуматься, как его реализовать.
Задание: В квадрате размера 3 на 3 клетки расставить числа от 1 до 9 так, чтобы суммы чисел, стоящих в каждом вертикальном ряду, в каждом горизонтальным ряду,
942
537
186 а по диагонали это наверно шутка такая для особо умных)
0
0 / 0 / 0
Регистрация: 01.04.2012
Сообщений: 10
02.04.2012, 16:53  [ТС]
Цитата Сообщение от Дмитрий3241 Посмотреть сообщение
i, j - координаты клетки.
это, как я понимаю, для двумерного массива?

Добавлено через 2 минуты
nikolaj, По диагонали это не шутка,
492
357
816
Проблема с кодом, чтобы программа сама расставляла цифры.

Добавлено через 2 часа 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
using System;
 
class Demo
{
    static void Main()
    {
        int[,] mas = new int[3, 3];
        int n = 3;
 
        for (int i = 0; i < 3; i++)
        {
            for (int j = 0; j < 3; j++)
            {
                mas[i, j] = 1 + ((i - j + (n - 1) / 2) % n) * n + ((i + j + (n + 1) / 2) % n);
            }
        }
 
        for (int i = 0; i < 3; i++)
        {
            for (int j = 0; j < 3; j++)
            {
                Console.Write(mas[i, j]);
            }
            Console.WriteLine();
        }              
    }
}
В принципе работает, только элемент mas[0,2] получает значение -1, а должен 8, подскажите, как исправить, не затронув остальные элементы массива?
Вариант, задавать значение вручную не подходит.
0
 Аватар для Дмитрий3241
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
Записей в блоге: 6
03.04.2012, 03:05
Сейчас посмотрим.
0
18 / 18 / 6
Регистрация: 28.02.2012
Сообщений: 36
03.04.2012, 04:48
C#
1
2
3
4
5
6
for(i = 0; i < 3; i ++)
        for(j = 0; j < 3; j++)
            arr[i][j] = 1 + ((i - j + (n - 1) / 2) % n)*n + ((i + j + (n + 1) / 2) % n);
    for(i = 0 ; i < 3; i++)
        S += arr[1][i];
    arr[0][2] = S - arr[0][0] - arr[0][1];
знаю немного схитрил, но в принципе ето выходит из постановки задачи)
0
1617 / 1182 / 553
Регистрация: 08.01.2012
Сообщений: 4,560
03.04.2012, 09:48
2 7 6
9 5 1
4 3 8
0
18 / 18 / 6
Регистрация: 28.02.2012
Сообщений: 36
03.04.2012, 10:16
в вики на одну строчку ниже етой формулы есть 2ой способ. Вот его код(только для 3х3):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
z = 1;
    i=1;
    j=0;
    while(z<9)
    {
        arr[i][j] = z;
        z+=2;
        if(i != j)
        {
            arr[j][i] = z;
            z+=2;
        }
        i+=(n-1-j)%2;
        j+=(n-1-i)%2;
    }
    arr[0][0] = arr[1][1] + n;
    arr[2][2] = arr[1][1] - n;
    arr[2][0] = arr[1][1] + 1;
    arr[0][2] = arr[1][1] - 1;
2
1617 / 1182 / 553
Регистрация: 08.01.2012
Сообщений: 4,560
28.03.2014, 15:52
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
    static void Main()
    {
        int[,] a= new int[3,3];
        fill(a, 1);
        Console.ReadKey();
    }
 
    static void fill(int[,] a, int n)
    {
        for (int i = 0; i < 9; i++)
        {
            int x = i % 3;
            int y = i / 3;
            if (a[x, y] == 0)
            {
                a[x, y] = n;
                if (n < 9) fill(a, n + 1);
                else test(a);
                a[x, y] = 0;
            }
        }
    }
 
    static void test(int[,] a)
    {
        int s = a[0, 0] + a[1, 0] + a[2, 0];
        for (int y = 1; y < 3; y++)
            if (s != a[0, y] + a[1, y] + a[2, y]) return;
        for (int x = 0; x < 3; x++)
            if (s != a[x, 0] + a[x, 1] + a[x, 2]) return;
        if (s != a[0, 0] + a[1, 1] + a[2, 2]) return;
        if (s != a[2, 0] + a[1, 1] + a[0, 2]) return;
        for (int y = 0; y < 3; y++)
        {
            for (int x = 0; x < 3; x++) Console.Write("{0} ", a[x, y]);
            Console.WriteLine();
        }
        Console.WriteLine();
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.03.2014, 15:52
Помогаю со студенческими работами здесь

Клетки в квадрате
В квадрате 100\times100 отмечены k клеток таким образом, что при любом разрезании квадрата по линиям сетки на два прямоугольника один из...

Разработать программу, которая в квадрате размером 4x4 клетки расставляет 16 букв
Доброго времени суток очень нужна помощь с ниже описным заданием по Haskell Задание : Разработать программу, которая в квадрате...

В магическом квадрате 3х3 расставить 9 степеней
в магическом квадрате 3х3 расставить 9 степеней чиста 2 таким образом, чтобы произведение чисел, стоящих в каждой строке, столбце и на...

Нарисовать квадрат в квадрате, в квадрате и так далее
Прошу помощи, мне подкинули задачку. Необходимо вывести на экран вот это: * * * * * * * * * * * * * * * * * *...

Рандом числа в квадрате
Нужно сгенерировать рандомные числа в диапазоне от 1 до 9 и вывести матрцией 9х9. //Вывод матрицы for(i=0; i&lt;9; i++) {...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru