Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Zhenek

Разминка для мозга

Рекомендованные сообщения

(изменено)

 

 

 

Ответ-то где лол. Для трапеции.

челик же просил задачу, не хотел ему руинить
ладно вот.

 

8726db238aee5752c222648056d78189-full.pn

медиана треугольника ABC = 7+7/(10/4 -1) = 7 +14/3= 35/3

у треугольника ABC известна медиана 35/10, строна 10 и угол 45, откуда площадь 500/9

площадь трапеции = (1-16/100)*500/9 = 140/3

хз мог в расчётах ошибиться

 

 

 

Вголос, я тупо не понимаю, откуда у тебя все эти числа взялись: для медианы и площади треугольника, но ответ почему-то правильный. :pray:

Я знаю решение двумя способами. 1 - через легкую систему из 4х уравнений на основе подобий + теоремы косинусов. 2 - через параллельный перенос, теорему косинусов ну и там изи дальше.

Хз чё у тебя за формулы и как ты вообще считал значение медианы, уже молчу о площади через медиану ... почему-то никогда не слышал от такой формуле.

 

 


Изменено пользователем Zhenek

WoW POE

Поделиться сообщением


Ссылка на сообщение
(изменено)

(0!+0!+0!)! = 6

(1+1+1)!*1

(2+2)!/2/2

(3!+3!+3!)/3

4!/4+4-4

(5*5+5)/5

6/6*(6*6)^0.5

(7*7-7)/7

8-(8+8)/2

9^0.5+9^0.5+9-9

(10*10-10)/10 :trollface:

 

 

 

 

откуда у тебя все эти числа взялись: для медианы и площади треугольника

ну медиана понятно что проходит через 0, и описанные окружности с центрами в серединах гипотенуз проходят через точку О, откуда находим отрезок 2+5, а целиком медиану через подобие треугольников.

Формулу тоже не нашол через медиану, сторону и угол, но можно достроить до параллелограмма и воспользоваться формулами для вычисления диагоналей или ещё какнить.

хуёвое офк решение, но какое есть

 

 


Изменено пользователем E1azor

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:    всё что пишу -- шизофренический бред     :zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

Поделиться сообщением


Ссылка на сообщение

 

А, всё, я понял. С медианами вообще круто получилось, я и забыл про свойство медиан для прямоугольного треугольника. Но, да, не это решение я ждал офк.

 


WoW POE

Поделиться сообщением


Ссылка на сообщение
(изменено)

 

 W_Hjeg8z0jU.jpg

 

уже минут 20 застрял, нихуя не вижу, кто поможет? за пятеру офк

 6 2 1 9 5 3 8 4 7

 9 5 8 4 1 7 3 2 6

 4 3 7 2 8 6 1 5 9

 1 7 6 3 4 2 5 9 8

 2 9 5 7 6 8 4 1 3

 3 8 4 1 9 5 6 7 2

 5 4 3 8 7 9 2 6 1

 7 6 2 5 3 1 9 8 4

 8 1 9 6 2 4 7 3 5

 

 

 

#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"

struct Sudoku
{
#define N 9
#define M 3
    unsigned int m[N][N];
    unsigned int r[N][N];
    int copyCount;
    int change_rCount;

    void init(const char *fn)
    {
        copyCount = 0;
        change_rCount = 0;
        for (int i = 0; i < N; i++)
            for (int j = 0; j < N; j++)
            {
                m[i][j] = (1 << N) - 1;
            }
        FILE *f = fopen(fn, "r");
        for (int i = 0; i < N; i++)
            for (int j = 0; j < N; j++)
            {
                fscanf(f, "%u", &r[i][j]);
                if (r[i][j] == 0)
                    r[i][j] = N;
                else
                    r[i][j]--;
            }
        fclose(f);
    }

    void outAnswer(const char *fn1, const char *fn2)
    {
        FILE *out1 = fopen(fn1, "w");
        FILE *out2 = fopen(fn2, "w");
        int count = 0;
        for (int i = 0; i < N; i++)
        {
            for (int j = 0; j < N; j++)
            {
                //fprintf(out1, "%4u", m[i][j]);
                unsigned int mm = m[i][j];
                for (int bitIndex = 0; bitIndex < N; bitIndex++)
                {
                    int bitValue = mm % 2;
                    fprintf(out1, "%u", bitValue);
                    mm /= 2;
                }
                fprintf(out1, " ");

                unsigned int res = r[i][j];
                if (res == N)
                    res = 0;
                else
                    res++;
                fprintf(out2, "%2u", res);
            }
            fprintf(out1, "\n");
            fprintf(out2, "\n");
        }
        fclose(out2);
        fclose(out1);
    }
    
    bool solve()
    {
        // инициализируем массивы в соответствии с исходными данными
        for (int i = 0; i < N; i++)
            for (int j = 0; j < N; j++)
            {
                if (r[i][j] != N)
                {
                    unsigned int mask = 1 << r[i][j];
                    if ((m[i][j] >> r[i][j]) % 2 == 0)    // это значение исключено - явно ошибка
                        return true;
                    if (change_r(i, j, r[i][j]))
                        return true;
                }
            }
        // вызываем перебор
        return enumeration();
    }

    bool enumeration()
    {
        // смотрим, в каком квадратике среди не определённых меньше всего вариантов
        int min, min_i, min_j;
        findMin(min, min_i, min_j);
        //printf("Min: NumberOfOnes[%d][%d] = %d\n", min_i, min_j, min);
        if (min == 1)
            return false;    // решение найдено
        else
        {
            unsigned int mm = m[min_i][min_j];
            for (int bitIndex = 0; bitIndex < N; bitIndex++)
            {
                int bitValue = mm % 2;
                if (bitValue == 1)
                {
                    // один из вариантов
                    copyCount++;
                    Sudoku newState = *this;
                    unsigned int mask = (1 << bitIndex);    // маска для обнуления всех битов кроме bitIndex
                    if (newState.change_m(min_i, min_j, mask))
                    {
                        // не пошло, сохраняем количество вызовов (solve() не вызывается)
                        change_rCount = newState.change_rCount;
                    }
                    else
                    {
                        if (newState.enumeration())
                        {
                            // не пошло, сохраняем количество вызовов
                            copyCount = newState.copyCount;
                            change_rCount = newState.change_rCount;
                        }
                        else
                        {
                            // решение найдено
                            *this = newState;
                            return false;
                        }
                    }
                }
                mm >>= 1;
            }
        }
        // решения нет
        return true;
    }

    // нахождение ячейки с меньким количеством вариантов
    void findMin(int &min, int &min_i, int &min_j)
    {
        min = N + 1;    // заведомо большое
        for (int i = 0; i < N; i++)
            for (int j = 0; j < N; j++)
            {
                if (r[i][j] == N)    // минимум среди не определённых
                {
                    unsigned int mm = m[i][j];
                    int NumberOfOnes = 0;
                    for (int bitIndex = 0; bitIndex < N; bitIndex++)
                    {
                        int bitValue = mm % 2;
                        NumberOfOnes += bitValue;
                        mm >>= 1;
                    }
                    if (NumberOfOnes < min)
                    {
                        min = NumberOfOnes;
                        min_i = i;
                        min_j = j;
                        if (min == 2)
                            break;    // 2 - идеальный вариант
                    }
                }
            }
        if (min == N + 1)
        {
            // неопределённых нет, значит решение найдено
            min = 1;
            min_i = 0;
            min_j = 0;
        }
    }

    // изменение значения элемента массива r
    bool change_r(int i, int j, unsigned int value)
    {
        change_rCount++;
        //printf("r[%d][%d] = %u\n", i, j, value + 1);
        r[i][j] = value;
        unsigned int mask = ((1 << N) - 1) - (1 << value);    // маска для обнуления бита номер value
        // строка и столбец
        for (int l = 0; l < N; l++)
        {
            if (l != j)
            {
                if(change_m(i, l, mask))    // исключение бита в m[i][l]
                    return true;
            }
            if (l != i)
            {
                if(change_m(l, j, mask))    // исключение бита в m[l][j]
                    return true;
            }
        }
        // квадрат
        int qi1 = i - i % M;
        int qj1 = j - j % M;
        for (int qi = qi1; qi < qi1 + M; qi++)
            for (int qj = qj1; qj < qj1 + M; qj++)
            {
                if (qi != i || qj != j)
                {
                    if(change_m(qi, qj, mask))    // исключение бита в m[qi][qj]
                        return true;
                }
            }
        return false;
    }
    
    // изменение значения элемента массива m
    bool change_m(int i, int j, unsigned int mask)
    {
        unsigned int newmij = (m[i][j] & mask);
        if (newmij == m[i][j])
            return false;
        else
        {
            m[i][j] = newmij;
            for (int bitIndex = 0; bitIndex < N; bitIndex++)
            {
                int bitValue = newmij % 2;
                if (bitValue == 1)
                {
                    if (newmij == 1)
                    {
                        // исключены все варианты кроме 1 - нашли ответ в ячейке
                        if(change_r(i, j, bitIndex))
                            return true;
                    }
                    return false;
                }
                newmij >>= 1;
            }
            // все биты 0 быть не могут => решения нет
            return true;
        }
    }
};

int main()
{
    Sudoku s;
    s.init("in.txt");
    if(s.solve())
        printf("no answer\n");
    else
        s.outAnswer("out_m.txt", "out_r.txt");
    printf("copyCount = %d\n", s.copyCount);
    printf("change_rCount = %d\n", s.change_rCount);
    return 0;
}


copyCount = 16
change_rCount = 203

 

 

 

не ручаюсь за правильность ответа, лень проверять

 

возникает вопрос, можно ли сократить перебор?

проверку на единственный бит наверно можно через логарифм по основанию 2 сделать - если бит 1, то целое получится, хз правда что быстрее

а количество бит в числе только в цикле что ли считать :hmm:

можно конечно 3-й массив завести но тогда совсем не красиво будет, и так 2 уже когда можно 1-м массивом обойтись


Изменено пользователем E1azor

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:    всё что пишу -- шизофренический бред     :zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

Поделиться сообщением


Ссылка на сообщение

решить судоку

KIHCLzJvsDc.jpg

 

 

прога офк решает

 

 

 8 0 0 0 0 0 0 0 0
 0 0 3 6 0 0 0 0 0
 0 7 0 0 9 0 2 0 0
 0 5 0 0 0 7 0 0 0
 0 0 0 0 4 5 7 0 0
 0 0 0 1 0 0 0 3 0
 0 0 1 0 0 0 0 6 8
 0 0 8 5 0 0 0 1 0
 0 9 0 0 0 0 4 0 0

 

 8 1 2 7 5 3 6 4 9
 9 4 3 6 8 2 1 7 5
 6 7 5 4 9 1 2 8 3
 1 5 4 2 3 7 8 9 6
 3 6 9 8 4 5 7 2 1
 2 8 7 1 6 9 5 3 4
 5 2 1 9 7 4 3 6 8
 4 3 8 5 2 6 9 1 7
 7 9 6 3 1 8 4 5 2

 

мгновенно, но

copyCount = 1850
change_rCount = 17301 :palevo:
то есть много перебирать приходится, ну а хуле, слишком тупой перебор (с единственной стратегией выбора: ставим цифру если, глядя на строку, столбец и малый квадрат, все остальные цифры исключены)

 

задача оказалась нп-жирной хуетой (придумывай сколько хочешь стратегий всё равно будешь в говне), поэтому оставляю как есть.

 

На счёт подсчёта количества ненулевых битов числа. Числа маленькие поэтому можно просто таблицу составить и цикл будет не нужен, сразу ответ на тебе.

 

Как же приятно отдохнут во время перерыва в этой теме. Спасибо, Женёк.

 

 


:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:    всё что пишу -- шизофренический бред     :zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

Поделиться сообщением


Ссылка на сообщение

Ты весь кайф ломаешь со своим перебором. Дай гуманитариям мозги в судоку напрячь :trollface:

Поделиться сообщением


Ссылка на сообщение

Хз, на 1 судоку своими мозгами я только дошел до шага: единственное решение (с 2 и 5).
http://www.sudokuwiki.org/sudoku.htm?bd=020053007950017020400280000106040000205068410300190000500070201702031080010020730
 

2 судоку от елазора этот калькулятор только методом перебора может решить.
 

Поделиться сообщением


Ссылка на сообщение

 

 

этот калькулятор только методом перебора может решить

ебать, рили :lol:

Number of solutions: 1
(recursed 2068781 times)

 

у меня и то пизже перебор значит, хотя туда только 1 стратегия заложена

наверно они просто ни одной стратегии не закладывали, шок :palevo:


:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:    всё что пишу -- шизофренический бред     :zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

Поделиться сообщением


Ссылка на сообщение

Тропечко

 

kDDsTdb.jpg

 

 

чёт вгилос, чел заказал задачку по геометрии и ушёл в закат )

Ну... Не всегда же есть время %)

Поделиться сообщением


Ссылка на сообщение

А че с физикой то решили. 2пи*sqrt(2) правильно ведь.

Поделиться сообщением


Ссылка на сообщение
(изменено)

Так. С кирпичами:

 

tfWuLa3.png

 

C двумя воинами от элазора я хз честно, либо условий мало, либо я усложняю.

 

37. Даны 2 фиксированные подставки, длина которых бесконечна, а расстояние межди ними - чуть больше, чем максимальная мера вашего ботинка (ширина, высота, длина - похуй, главное, что нельзя положить ботинок между подставками, чтобы он не упал), ваш ботинок и стандартный лист А4, ширина которого больше, чем расстояние между подставками, Как сделать так, чтобы лист удержал ботинок на себе целиком и не провалился между подставками?


Изменено пользователем Zhenek

WoW POE

Поделиться сообщением


Ссылка на сообщение
(изменено)

^^не нравится, что ответ противоречит здравому смыслу?

 

^условий вроде достаточно

существует единственное поведение мастера, при котором он в среднем меньше всего обосрётся


пододвинуть подставки или лист закрепить

ну а если подставки плоские а ботинок 3д, то просто поставить, никуда он не провалится

 

нихуя не понял условие

 

 

хмм, если изменить сообщение, а потом отправить новое чтобы они склеились, то изменится время высера поста


Изменено пользователем E1azor

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:    всё что пишу -- шизофренический бред     :zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

Поделиться сообщением


Ссылка на сообщение
(изменено)

Нет. Ок обновлю.

Оранжевая бумага. 2 чёрные подставки на одном уровне (извините, не старался). Ботинок офк лежит на бумаге ЦЕЛИКОМ.

ao4YnBO.png

 

Вопрос: что надо сделать чтобы ботинок не упал вниз, если есть только ботинок, бумага и 2 недвигающиеся подставки.

Задача без выебонов. Иди тупо на кухне попробуй с кастрюлями в качестве подставок и айфона вместо ботинка, я хз.


Изменено пользователем Zhenek

WoW POE

Поделиться сообщением


Ссылка на сообщение
(изменено)

подуть снизу или выключить гравитацию

 

шнурки можно использовать или раскурочивать ботинок?

 

боком можно положить?


Изменено пользователем E1azor

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:    всё что пишу -- шизофренический бред     :zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

Поделиться сообщением


Ссылка на сообщение

Рыли просто крайне плотно сложить бумагу и даже в подобный тяжелый ботинок, как на скрине, если вставить в край подошвы (нарастить недостающую длину до поставкт), Можно запросто поймать равновесие


.

Поделиться сообщением


Ссылка на сообщение
(изменено)

^^^ нет, говорю же, можно на кухне пойти сделать, тупо irl задача без выебонов. Нет шнурков. Боком тоже падает офк

 

^^ не понял

 

^ не, никаких вставляшек. Произвольный ботинок


Изменено пользователем Zhenek

WoW POE

Поделиться сообщением


Ссылка на сообщение
(изменено)

если мера ботинка чуть меньше, то рили если бумагу сложить много раз и подложить под край ботинка с одной стороны то может проканать

970f57dc7dd977c1b3553697f2c6999e-full.pn


Изменено пользователем E1azor

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:    всё что пишу -- шизофренический бред     :zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

Поделиться сообщением


Ссылка на сообщение
(изменено)

Нет. Произвольные габариты ботинка. Задача для строителей и инженеров так-то


Изменено пользователем Zhenek

WoW POE

Поделиться сообщением


Ссылка на сообщение

если бумаги всего 1 лист то максимум из неё можно сделать верёвку, хз


:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:    всё что пишу -- шизофренический бред     :zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

Поделиться сообщением


Ссылка на сообщение

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

×
×
  • Создать...