Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 15.12.2012
Сообщений: 20

Задача на логику?

15.12.2012, 02:54. Показов 1282. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток всем. Очень интересная задачка - дочитайте до конца. Ребёнку в школе задали задачку на логику, казалось бы 100 лет она мне не нужна но ввязался, теперь не сплю вторые сутки. Но ближе к сути. Есть 25 подряд стоящих ячеек (ну одномерный массив), в пятой по счету ячейке стоит число 20 в двадцатой по счету (ну или 6-й от конца) вписана цифра 13, остальные пустые. Нужно в остальные пустые ячейки вписать числа от 1 до 25 с таким условием, что-бы числа не повторялись и самое интересное - сумма любых соседних чисел равна квадрату целого числа. Что бы легче было вникнуть могу начать просто путём подбора: 18-7-9-16-20-5-11... Смотрите 18+7=25 а это квадрат 5, 7+9=16 а это квадрат 4 и т.д. С помощью ручки и бумаги в своей логике состязалось несколько далеко не глупых человек. Так прошло более 2-х суток, а результата всё нет. Вопрос, а при чем тут С#? Просто я бывший программист, который 4 года не писал ничего и очень много забыл. Короче пришлось вспоминать что такое рекурсивная функция и всё остальное, что то получилось, но очень каряво - стыдно показывать. Создал пару массивов, цикл for, куча флагов и рекурсивная функция. Мне оно 100 лет не нужно, просто зацепило. А ещё мне кажется, что в этой задачке на "логику" логики как раз то и нет. И лишь комп путём перебора данных сумеет подтвердить моё предположение. Есть ли желающий написать такой код? Последнее, что мне пришло в голову, надо создать массив на 25 чисел и заполнить, не трогая упомянутых ячеек, а потом сортировать хитрым образом. Стыдно но я забуксовал.

Добавлено через 37 минут
Знакомый математик вроде как решил за пол часа (но ещё не показал), но другой математик утверждает, что только подбор по принципу домино. Если 25 чисел то можно и подобрать, а если 250? Тут либо математическая закономерность либо комп поберёт (при наличии правильного алгоритма :-)). Лично я хотел бы увидеть работающий алгоритм.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.12.2012, 02:54
Ответы с готовыми решениями:

Задача на логику
Помогите решить задачи на логику. Задачи в прикрепленном файле. Заранее спасибо Ссылка удалена модератором

Задача на логику
Фамилия великого математика содержит пять букв. если буквы алфавита А, Б, В, …, Ю, Я (без Ё) перенумеровать по порядку идущими подряд...

Задача логику...
так как с логикой у меня проблемы..)) думаю вы сможете решить var ang:double;x,y,r:integer; begin MoveTo(0,Width); r:=50; ...

7
1615 / 1181 / 552
Регистрация: 08.01.2012
Сообщений: 4,558
15.12.2012, 07:00
у меня вроде 3 варианта получилось
правда без логики , тупым перебором
Миниатюры
Задача на логику?  
0
15.12.2012, 09:36
 Комментарий модератора 
Перенесено в раздел "Алгоритмы", т.к. решение мало связано с языком
0
73 / 73 / 10
Регистрация: 18.09.2012
Сообщений: 208
15.12.2012, 12:37
Скорее тут "частичный" перебор, начинающийся как раз с ячеек для которых указаны числа
0
0 / 0 / 0
Регистрация: 15.12.2012
Сообщений: 20
15.12.2012, 14:23  [ТС]
MansMI - я вижу что получилось, а можно алгоритм, уж Очень хочется посмотреть.
0
1615 / 1181 / 552
Регистрация: 08.01.2012
Сообщений: 4,558
15.12.2012, 14:34
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
    class Program
    {
        static int[] arr=new int[25];
        struct structure
        {
            public int n;
            public bool use;
        }
        static structure[] arrstr = new structure[25];
        
        static void Main(string[] args)
        {
            for (int i = 0; i < 25;) arrstr[i].n = ++i;
            arrstr[12].use = arrstr[19].use = true;
 
            for (int i = 0; i < 25; i++)
            if (!arrstr[i].use)
            {
                arr[0] = arrstr[i].n;
                arrstr[i].use = true;
                fill(1);
                arrstr[i].use = false;
            }
            Console.ReadKey();
        }
 
        static void fill(int n)
        {
            for (int i = 0; i < 25; i++)
            if (!arrstr[i].use && n != 4 && n != 19 || n == 4 && i == 19 || n == 19 && i == 12)
            {
                arr[n] = arrstr[i].n;
                int s = arr[n - 1] + arr[n];
                if (s == 4 || s == 9 || s == 16 || s == 25 || s == 36 || s == 49)
                {
                    arrstr[i].use = true;
                    if (n < 24) fill(n + 1);
                    else
                    {
                        foreach (int a in arr) Console.Write("{0,3}", a);
                        Console.WriteLine();
                    }
                    if (n != 4 && n != 19) arrstr[i].use = false;
                }
            }
        }
    }
1
0 / 0 / 0
Регистрация: 15.12.2012
Сообщений: 20
15.12.2012, 16:23  [ТС]
Большое спасибо. У меня код побольше и покарявей и просчитывал не до конца. Хотя я тоже структуру делал. А потом массив структур ну и тд...
Thanks
0
1963 / 819 / 114
Регистрация: 01.10.2012
Сообщений: 4,767
Записей в блоге: 2
16.12.2012, 16:23
Цитата Сообщение от MansMI Посмотреть сообщение
у меня вроде 3 варианта получилось
правда без логики , тупым перебором
Сделал на плюсах, результат тот же
Если не вдаваться в "оптимальность", то все довольно просто - для каждого числа храним всех возможных соседей, а дальше просто крутим "алгоритм с развратом" по этому графу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.12.2012, 16:23
Помогаю со студенческими работами здесь

Задача на логику
Задал преподаватель задачку. Я быстро нашел ответ , но преподаватель сказал что нужно все это математически оформить. Задача следующая : ...

Задача на логику
Следующий опрос 100 студентов (см. задачу 4) выявил следующие данные о числе студентов, изучающих различные иностранные языки: только...

Почему Б больше В? (задача на логику)
Б ) (физика | химия) &amp; (экзамен | тестирование) В ) физика &amp; химия &amp; экзамен &amp; тестирование почему б больше В

Задача на логику
Решите задачку и напишите правильный ответ. Задача кажется простой, но наделала много шума. пирамидки считать слева направо 1 2 3 4

задача на логику
Здравствуйте, в универе подкинули задачку, как выразился препод на логику. Хотел сам по честному решить, но даже идей нет. Может, кто...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru