Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.76/34: Рейтинг темы: голосов - 34, средняя оценка - 4.76
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943

Из заданного числа используя заданный набор операций получить единицу

12.07.2018, 20:00. Показов 7950. Ответов 51
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Кликните здесь для просмотра всего текста
(Название задачи -) Число - 3
(Время: 1 сек. Память: 16 Мб Сложность: 35%)

Дано натуральное число N. Над ним можно произвести следующий набор операций:

вычитать единицу;
делить на три, если число кратно трем;
делить на два, если число четное.

После выполнения одной из операций к полученному результату также можно применить указанные операции, и делается это до тех пор, пока результат не окажется равным 1.

Входные данные
Входной файл INPUT.TXT содержит натуральное число N (N ≤ 10^6).

Выходные данные
В выходной файл OUTPUT.TXT выведите наименьшее количество операций, в результате выполнения которых будет получена единица.

Примеры

Bash
1
2
3
4
    INPUT.TXT                OUTPUT.TXT
          5                        3
          1                        0
         10                        3


Задача относится к теме Динамическое программирование но я не могу понять где тут динамика. Хотя решил порядка 10 задач на динамику. Буду благодарен за любой совет или код
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.07.2018, 20:00
Ответы с готовыми решениями:

Из числа N, используя наименьшее количество операций, получить число 1000
Есть число N и два действия: умножить на 2 вычесть 1 Надо из числа N, используя наименьшее количество операций,...

Возведение заданного целое числа в целую неотрицательную степень, используя минимум операций умножения
Задание: Возведите заданное целое число в целую неотрицательную степень, используя минимальное число операций умножения. вот что я...

Замена четных цифр заданного числа на единицу
Составить программу, заменяющую четные цифры числа N единицей.

51
483 / 275 / 57
Регистрация: 08.10.2015
Сообщений: 1,190
13.07.2018, 10:04
Студворк — интернет-сервис помощи студентам
Biger18, Вы невнимательно прочли задание.
Цитата Сообщение от no swear Посмотреть сообщение
...выведите наименьшее количество операций, в результате выполнения которых будет получена единица.
Впрочем, похоже, это относится и к другим участникам обсуждения.
1
Заблокирован
13.07.2018, 10:28
Цитата Сообщение от САлександр Посмотреть сообщение
Вы невнимательно прочли
решение
1
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
13.07.2018, 11:19
Цитата Сообщение от Байт Посмотреть сообщение
Простите, а зачем все это? Чем не устроит
Это вычисления времени компиляции. Или как ещё говорят, обобщенное программирование. Я там выше об этом написал и покаялся, что оно не вполне удовлетворяет условию ибо нельзя осуществить ввод во время выполнения. Одно хорошо, - это самый быстрый из возможных способов. Потому, что результат известен ещё до загрузки программы в память.
А последний пост:
https://www.cyberforum.ru/post12536921.html
это таки попытка накарябать динамический вариант. Все промежуточные результаты сохраняются и применяются как готовые при необходимости повторного использования без пересчёта (повторных вычислений). Вроде работает. Я ещё когда писал про
Цитата Сообщение от IGPIGP Посмотреть сообщение
Спать-спать-спать...
Видел этот вариант. Но смалодушничал и лёг. А надо было написать. Не снилось бы тогда, а поспал бы нормально.
Байт, ответьте мне честно и помужски. Это правда, что деление на 2 - замунуха отвлекательная? Я обошёлся без этой операции потому как верю, что удаление единицы (или последовательное удаление 2-х единиц по одной) с последующим делением на 3 - никогда не хуже, но иногда лучше чем деление пополам. Верно ли это?
1
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
13.07.2018, 11:28
Цитата Сообщение от IGPIGP Посмотреть сообщение
Верно ли это?
не думаю
например число 16
деление на 2
16/2=8
8/2=4
4/2=2
2/2=1
4 операции
без деления на 2
16-1=15
15/3=5
5-1=4
4-1=3
3/3=1
пять операций
2
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
13.07.2018, 11:48
Цитата Сообщение от ValeryS Посмотреть сообщение
не думаю
Не-а. Именно ты и думаешь. А я - нет. Хм-м... Что же делать? Гнать разные наборы и выбирать минимальный или есть извлечения из теории чисел, которые могут упростить ситуацию?
Может это только со степенями двойки так?

Добавлено через 13 минут
Похоже, что если число не делится на 3 но делится на 4, то уже выгоднее делить на 2 дважды чем вычесть хотябы 1 а потом делить на 3. Если это так то изменения в алгоритме могут быть минимальны.
1
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
13.07.2018, 11:56
Цитата Сообщение от IGPIGP Посмотреть сообщение
но делится на 4,
здесь наверно нужно проверять на степень двойки
вот так например
C++
1
if((x&(x-1))==0)
Добавлено через 2 минуты
интересно а есть степень двойки кратная трем
так навскидку не нахожу
2
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
13.07.2018, 11:58
Цитата Сообщение от ValeryS Посмотреть сообщение
здесь наверно нужно проверять на степень двойки
вот так например
И я это заподозрил. Но хватит ли сомножителя 22 = 2X2 = 4 , чтобы делить дважды ?

Добавлено через 1 минуту
Цитата Сообщение от ValeryS Посмотреть сообщение
интересно а есть степень двойки кратная трем
Не должно быть. Вернее, должно не быть, я думаю.
1
483 / 275 / 57
Регистрация: 08.10.2015
Сообщений: 1,190
13.07.2018, 12:02
Например: (на Билдер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
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int n,mi,i;
String rezult;
n=StrToInt(Edit1->Text);
int *d = new int[n+1];
d[1]= 0;
for(i=2; i<n+1; i++)
  {
    mi=d[i-1]+1;
    if(i % 2==0) mi=min(mi,d[i/2]+1);
    if(i % 3==0) mi=min(mi,d[i/3]+1);
    d[i] = mi;
  }
i=n;
while(i>1)
 {
   if(d[i]==d[i-1]+1){ rezult=rezult+'1'; i--;}
     else if((i % 2==0) && (d[i]==d[i/2]+1)) { rezult=rezult+'2';  i/=2;}
       else {rezult=rezult+'3'; i/=3;}
 }
delete[]d;
}
Ответ в mi, последовательность операций в rezult.
1
165 / 114 / 59
Регистрация: 12.07.2018
Сообщений: 277
13.07.2018, 12:17
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "iostream"
 
int nmin = 10000000;
 
void recurs(int n, int nm)
{
 if (n == 1) {
  if (nm < nmin) nmin = nm;
  return;
 }
 nm++;
 recurs(n - 1, nm);
 if (n % 2 == 0) recurs(n / 2, nm);
 if (n % 3 == 0) recurs(n / 3, nm);
}
 
void main(int argc,char **argv)
{
 int n;
 cin >> n;
 recurs(n,0);
 cout << nmin << endl;
}
1
483 / 275 / 57
Регистрация: 08.10.2015
Сообщений: 1,190
13.07.2018, 12:50
Biger18, прошу прощения, не разобрался. Ваш второй вариант работает прекрасно!
1
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
13.07.2018, 15:27
Цитата Сообщение от ValeryS Посмотреть сообщение
здесь наверно нужно проверять на степень двойки
Я решил на делимость на 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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
// prg_title 'dream in summer night'
#include<iostream>
#include<map>
#include<stack>
#include<vector>
using namespace std;
struct crasy_solver
{
crasy_solver(int N_=0)
:N(N_), countOp(0)
{
map<int,int>& mawpa = alreadyEvaluated();
mawpa[0]=0;
mawpa[1]=0;
mawpa[2]=1;
mawpa[3]=1;
}
 
crasy_solver(int N_, int countOp_)
:N(N_), countOp(countOp_)
{
}
    static map<int,int>& alreadyEvaluated();
    static stack<pair<int,int>>& toBeStored();
 
 
    void countOfOperations()
    {
        stack<pair<int,int>>&   stacka  =   toBeStored();
 
        map<int,int>&           mawpa   =   alreadyEvaluated();
 
 
      auto pairOfGnedih = mawpa.find(N);
      if(pairOfGnedih != mawpa.end())
        {
            N=1;
            countOp = pairOfGnedih->second;
            while(!stacka.empty())
                {
                    auto& toExtract = stacka.top();
                    toExtract.second = ++countOp;
                    mawpa.insert(toExtract);
                    stacka.pop();
                }
            return;
        }
 
        auto toStore = pair<int,int>(N, 0);
        stacka.push(toStore);
        ++countOp;
      if(N%3 == 0)
      {
            N/=3;
            return countOfOperations();
      }
 
      if(N%4 == 0)
      {
            N/=2;
            return countOfOperations();
      }
            N-=1;
            return countOfOperations();
 
    }
 
  static
    void show_mawpa()
    {
        static map<int,int> AlreadyEvaluated=alreadyEvaluated();
        for(const auto & mawp : AlreadyEvaluated)
            cout<<mawp.first<<'\t'<<mawp.second<<endl;
 
    }
 
    int N;
    int countOp;
 
};
 
stack<pair<int,int>>&
crasy_solver::toBeStored()
{
    static stack<pair<int,int>> ToBeStored;
    return ToBeStored;
}
map<int,int>&
crasy_solver:: alreadyEvaluated()
{
    static map<int,int> AlreadyEvaluated;
    return AlreadyEvaluated;
}
 
int main(int argv, char*argc[])
{
crasy_solver
cs1(1), cs5(5), cs10(10), cs11(11), cs12(12),
cs13(13), cs14(14),cs15(15), cs16(16), cs32(32),
cs64(64), cs65(65), cs66(66), cs67(67), cs83(83) ;
cs1.countOfOperations();
cout<<cs1.countOp<<endl;
cs5.countOfOperations();
cout<<cs5.countOp<<endl;
cs10.countOfOperations();
cout<<cs10.countOp<<endl;
 
cs11.countOfOperations();
cout<<cs11.countOp<<endl;
cs12.countOfOperations();
cout<<cs12.countOp<<endl;
cs13.countOfOperations();
cout<<cs13.countOp<<endl;
 
cs14.countOfOperations();
cout<<cs14.countOp<<endl;
cs15.countOfOperations();
cout<<cs15.countOp<<endl;
cs16.countOfOperations();
cout<<cs16.countOp<<endl;
cs32.countOfOperations();
cout<<cs32.countOp<<endl;
 
cs64.countOfOperations();
cout<<cs64.countOp<<endl;
cs65.countOfOperations();
cout<<cs65.countOp<<endl;
cs66.countOfOperations();
cout<<cs66.countOp<<endl;
cs67.countOfOperations();
cout<<cs67.countOp<<endl;
 
cs83.countOfOperations();
cout<<cs83.countOp<<endl;
cout<<"\n______________\n"<<endl;
crasy_solver::show_mawpa();
 
 cin.get();
    return 0;
}
1
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,361
13.07.2018, 17:35
Цитата Сообщение от no swear Посмотреть сообщение
Новичок, Ваша идея похожа на идею Байта поэтому она тоже не верна
Что значит не верна?! Это ультрабаян на ДП! Мое решение 100% правильное. Осталось только головой подумать и написать правильно. Например нельзя просто писать dp[i] = min(dp[i - 1], dp[i / 2], dp[i / 3]), нужно проверять делится ли число на 2, на 3.
1
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
13.07.2018, 18:59
Вот. Устранил ещё одну неточность и попробовал замерять время в сравнении с Biger18. Тут нет никакого желания померяться чем-то. Просто больше не с чем сравнить. За рабочий код Biger18 - отдельное спасибо.
Я не гнался за скоростью выполнив много лишних движений и упаковав задачу в объект, но главное (даже если в алгоритме что-то не так) это динамический подход. Не думаю, что он так уж хорош у меня, но он есть. То есть все промежуточные результаты сохраняются и используются повторно. Поэтому (если я не напортачил где-то) разница в скорости в 50 раз.
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
// prg_title 'dream in summer night'
#include<iostream>
#include<map>
#include<stack>
#include<vector>
#include <ctime>
#include <cstdlib>
 
using namespace std;
 
struct crasy_solver
{
crasy_solver(int N_=0)
:N(N_), countOp(0)
{
map<int,int>& mawpa = alreadyEvaluated();
mawpa[0]=0;
mawpa[1]=0;
mawpa[2]=1;
mawpa[3]=1;
}
 
crasy_solver(int N_, int countOp_)
:N(N_), countOp(countOp_)
{
}
    static map<int,int>& alreadyEvaluated();
    static stack<pair<int,int>>& toBeStored();
 
 
    void countOfOperations()
    {
        stack<pair<int,int>>&   stacka  =   toBeStored();
 
        map<int,int>&           mawpa   =   alreadyEvaluated();
 
 
      auto pairOfGnedih = mawpa.find(N);
      if(pairOfGnedih != mawpa.end())
        {
            N=1;
            countOp = pairOfGnedih->second;
            while(!stacka.empty())
                {
                    auto& toExtract = stacka.top();
                    toExtract.second = ++countOp;
                    mawpa.insert(toExtract);
                    stacka.pop();
                }
              //  cout<<countOp<<endl;
            return;
        }
 
        auto toStore = pair<int,int>(N, 0);
        stacka.push(toStore);
        ++countOp;
      if(N%3 == 0)
      {
            N/=3;
            return countOfOperations();
      }
 
      if(N%4 == 0 || (N%2==0 && (N/2-1)%3==0))
      {
            N/=2;
            return countOfOperations();
      }
            N-=1;
            return countOfOperations();
 
    }
 
  static
    void show_mawpa()
    {
        static map<int,int> AlreadyEvaluated=alreadyEvaluated();
        for(const auto & mawp : AlreadyEvaluated)
            cout<<mawp.first<<'\t'<<mawp.second<<endl;
 
    }
 
    int N;
    int countOp;
 
};
 
stack<pair<int,int>>&
crasy_solver::toBeStored()
{
    static stack<pair<int,int>> ToBeStored;
    return ToBeStored;
}
map<int,int>&
crasy_solver:: alreadyEvaluated()
{
    static map<int,int> AlreadyEvaluated;
    return AlreadyEvaluated;
}
 
int nA,x;
void action(int a,int n);
 
int main(int argv, char*argc[])
{
    srand((int)time(0));
  const int sz = 100000;
 int n[sz];
 for(int i=0; i<sz; ++i)
    {
n[i] = rand()%(sz+1);
//cout<<n[i]<<"\n";
    }
cout<<"\nmy_prg\n";
clock_t tBegFirst=clock();
for(int i=0; i<sz; ++i)
{
 crasy_solver cs(n[i]);
 cs.countOfOperations();
// cout<<cs.countOp<<endl;
}
clock_t  tEndFirst=clock ();
clock_t spanF= tEndFirst-tBegFirst;
cout<<"elapsed "<<spanF<<endl;
 
cout<<"\nbiger18_prg\n";
tBegFirst=clock();
for(int i=0; i<sizeof(n)/sizeof(int); i++)
    {
        nA=0;
        action(1,n[i]);
       // cout<<nA<<endl;
    }
tEndFirst=clock ();
spanF= tEndFirst-tBegFirst;
cout<<"\nelapsed "<<spanF<<endl;
 
 
 //cin.get();
    return 0;
}
 
void action(int a,int n)
{
    for(char i=0; i<3; i++)
    {
        x=0;
        if(!i   && n%3==0) x=n/3;
        if(i==1 && n%2==0) x=n/2;
        if(i==2 && n>1) x=n-1;
        if(x==1 && (a<nA || !nA)) nA=a;
        if(x>1  && (a<nA || !nA)) action(a+1,x);
    }
}
no swear, спасибо за хорошую задачку!
1
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,361
13.07.2018, 19:23
150 строк?!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <vector>
#include <algorithm>
 
int main() {
    size_t n;
    std::cin >> n;
    std::vector<size_t> dp(n+1);
    for (size_t i = 2; i <= n; i++) {
        dp[i] = dp[i-1] + 1;
        if (i % 2 == 0)
            dp[i] = std::min(dp[i], dp[i / 2] + 1);
        if (i % 3 == 0)
            dp[i] = std::min(dp[i], dp[i / 3] + 1);
    }
    std::cout << dp[n];
}
Accepted с первого раза, http://rextester.com/IQY21567

Добавлено через 1 минуту
Не понимаю что тут 2 страницы обсуждали...
1
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
13.07.2018, 19:40  [ТС]
Байт, Новичок Проверял 4 раза ваш алгоритм и всё время ответ 4 выходил на тесте 10 вместо 3,
Мдаа, ещё раз убедился в том что самый злейший враг программиста это сон

Всем огромное спасибо за то что приняли участие в обсуждении данной задачи, особенно IGPIGP. Много интересного узнал из ваших постов, приму на вооружение в будущем.

Новичок да вы были правы! Ваш алгоритм правильный как и алгоритм Байта прошу простить за невнимательность

За это лето я должен прорешать туевую кучу задач на динамику и думаю это моя не последняя тема на этом форуме
1
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
13.07.2018, 20:51
Цитата Сообщение от no swear Посмотреть сообщение
Много интересного узнал из ваших постов, приму на вооружение в будущем.
Это не может не беспокоить. Мои опусы устроены так, что сохранить душевное здоровье можно лишь глядя на них с подозрением. Крититически, то есть. Многое сделано быстро и страшно. Например, даже такая мелочь как инициализация статической мапы сделана в стиле ужастика. А можно же было хотя бы так:
C++
1
2
3
4
5
6
map<int,int>&
crasy_solver:: alreadyEvaluated()
{
    static map<int,int> AlreadyEvaluated={{0,0},{1,0},{2,1},{3,1}};
    return AlreadyEvaluated;
}
и оставить тело конструктора чистым. Это кстати, повышает скорость почти вдвое. Хотя главное, оздоровляет код. Так что смотрите но с позиции недоверия.
Цитата Сообщение от no swear Посмотреть сообщение
За это лето я должен прорешать
Это правильно. Удачи!

0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
13.07.2018, 22:44
Цитата Сообщение от ValeryS Посмотреть сообщение
интересно а есть степень двойки кратная трем
так навскидку не нахожу
Спи спокойно и ты! Такой нету, ни на вскидку, ни прицельно. Хочешь, докажу?

Добавлено через 2 минуты
Цитата Сообщение от IGPIGP Посмотреть сообщение
ответьте мне честно и помужски. Это правда, что деление на 2 - замунуха отвлекательная?
Честно и по-мужски - НЕТ. Уже Восьмерка это показывает.

Добавлено через 8 минут

Не по теме:

Цитата Сообщение от no swear Посмотреть сообщение
За это лето я должен
Как-то мне для облегчения здоровья посоветовали посмотреть в сторону гимнастики "ци-гун" Что меня совершенно покорило? - "Повторяйте это упражнение до тех пор, пока это доставляет вам удовольствие"
И, будучи от природы въедливым, я эту рекомендацию на многое обобщил. Чего и вам желаю!

2
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
13.07.2018, 22:44
Цитата Сообщение от Байт Посмотреть сообщение
НЕТ.
Так я и знал! Тут уже мы извелись все в том, какую степень двойки в качестве делителя нужно считать критерием для деления на 2. Я решил - вторую. А там - рекурсивно. То есть поделить и снова проверить. Как будто ничего и не было. В итоге, - работает, но на душе неспокойно как-то. Читерство, чётной чечётки, одним словом. Вместо научного доказательства.
Цитата Сообщение от Байт Посмотреть сообщение
Такой нету, ни на вскидку, ни прицельно. Хочешь, докажу?
Это похоже на правду. Если тройку представить в виде суммы 2+1 то уравнения с биноминальными коэффициентами не хуже теоремы Ферма. Гиблое дело. То есть, правдоподобно.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
13.07.2018, 22:53

Не по теме:

В частности. Совершенно незакомый с эзотерикой местный сторож, мой наставник в обращении с инструментами, на вопрос - "Как понять, что пила уже тупая?", ответил просто - "Как только работа с ней перестает доставлять тебе удовольствие"



Добавлено через 5 минут
Цитата Сообщение от IGPIGP Посмотреть сообщение
Если тройку представить в виде суммы 2+1
Не стоит. Есть теорема об однозначном разложении на простые множители. Доказательство ее - легкое упражнение для продвинутого (понимающего то, чему его учат) ученика 5-го класса. Ее вполне достаточно.
0
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,361
13.07.2018, 22:55
Цитата Сообщение от Байт Посмотреть сообщение
Доказательство ее - легкое упражнение для продвинутого (понимающего то, чему его учат) ученика 5-го класса.
Как всегда от противного доказываем?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.07.2018, 22:55

Опpеделить пpомежуток минимальной длины, содеpжащий заданный набор числа
Данa последовательность x1,x2,...,xn (n&lt;=100) действительныx чисeл. Опpеделить пpомежуток минимальной длины , содеpжащий эти числа; pазбить...

Установить в единицу каждый второй бит заданного целого числа
Доброго времени суток . Такая вот задача : установить в единицу каждый второй бит целого числа А. Догадываюсь что нужно делать через...

Дано целое двухзначное число a. Получить удвоенное значение наименьшего числа, которое можно получить из цифр заданного числа a
Дано целое двухзначное число a. Получить удвоенное значение наименьшего числа, которое можно получить из цифр заданного числа a. Входные...

Из одного числа получить второе, заменив каждую цифру на единицу
Доброго времени суток. Недавно мне в голову пришла идея написать следующюю программу. Её смысл в том что дается два 9-ти значных...

Не используя не каких действий кроме умножения получить а в 22 степени за 6 операций
дано действительное число a, не используя не каких действий кроме умножения получить а в 22 степени за 6 операций


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru