Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.69/35: Рейтинг темы: голосов - 35, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 17.02.2014
Сообщений: 19
1

Вы продолжаете каждую минуту тянуть резину. Доберется ли гусеница когда-нибудь до противоположного конца?

19.02.2014, 06:13. Показов 7349. Ответов 54
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Гусеница ползет со скоростью 1 см/мин по куску резины, стремясь достичь противоположного конца. Кусок резины имеет длину 5 см и может растягиваться до любой длины. Через минуту вы растягиваете резину так, чтобы она удлинилась вдвое (т.е. стала 10 см в длину). Гусеница прочно держится на поверхности и продолжает двигаться, когда вы снова вытягиваете резину так, что ее первоначальная длина утраивается. Гусеница продолжает ползти, а вы продолжаете каждую минуту тянуть резину…. Доберется ли гусеница когда-нибудь до противоположного конца? Если да, то когда?

Желательно сделать не через консоль а через форму и с листбоксом.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.02.2014, 06:13
Ответы с готовыми решениями:

Вы продолжаете каждую минуту тянуть резину. Доберется ли гусеница когда-нибудь до противоположного конца?
Гусеница ползет со скоростью 1 см/мин по куску резины, стремясь достичь противоположного конца....

Вы продолжаете каждую минуту тянуть резину. Доберется ли гусеница когда-нибудь до противоположного конца?
Гусеница ползет со скоростью 1 см/мин по куску резины, стремясь достичь противоположного конца....

Вывод каждую минуту
Ребят, помогите. Мне нужно собирать каждую минуту информацию о gc. У меня все инфа обернута в...

Обновление каждую минуту
Здравствуйте. Мне необходимо реализовать обновление файла каждую минуту. Что я имею ввиду: записи...

54
1150 / 742 / 483
Регистрация: 21.01.2014
Сообщений: 1,903
19.02.2014, 15:30 2
Код для консольного приложения, слабонервным не смотреть
Кликните здесь для просмотра всего текста

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
            Console.WriteLine("Cкорость гусеницы: ");
            double caterSpeed = double.Parse(Console.ReadLine());
            Console.WriteLine("Начальная длина резинки ");
            double rubLength = double.Parse(Console.ReadLine());
            Console.WriteLine("Скорость расжения резинки ");         
            double stretchSpeed = double.Parse(Console.ReadLine());
            if (caterSpeed > stretchSpeed)
            {
                double time = 0;
                double step = 1000; //чем больше, тем плавнее двигается гусеница и растягивается резинка
                double toEnd = rubLength; //расстояние до конца резинки
                while (toEnd > 0) {
                    
                    toEnd = toEnd - (caterSpeed/step) + (stretchSpeed/step);
                    time++;
                }
                Console.WriteLine("Гусеница  доберется до конца резинки через " + (time/step) + " сеунд(ы)");
            }
            else Console.WriteLine("Гусеница не доберется до конца резинки");
1
0 / 0 / 0
Регистрация: 17.02.2014
Сообщений: 19
21.02.2014, 07:55  [ТС] 3
В задаче сказано, что длина резины постоянно удваивается (х*2) и один раз утраивается её начальная длина .
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
21.02.2014, 08:14 4
Цитата Сообщение от Grimmjow Jagger Посмотреть сообщение
Гусеница прочно держится на поверхности и продолжает двигаться, когда вы снова вытягиваете резину так, что ее первоначальная длина утраивается.
Какой частью гусеница прочно держиться то? Задней или передней (она не точка на отрезке)? Или двумя и тогда при растяжении резины длина гусеницы тоже утраивается?
1
1150 / 742 / 483
Регистрация: 21.01.2014
Сообщений: 1,903
21.02.2014, 13:48 5
Цитата Сообщение от Grimmjow Jagger Посмотреть сообщение
длина резины постоянно удваивается (х*2) и один раз утраивается её начальная длина
Хм, там же сначала 5см, потом 10см и после следующего растягивания первоначальная утраивается, т.е. 15 см, вот я и сделал +5 за секунду.
0
Эксперт .NET
5534 / 4298 / 1217
Регистрация: 12.10.2013
Сообщений: 12,332
Записей в блоге: 2
21.02.2014, 14:56 6
Судя по условию, думаю тут и без программы понятно, что никуда она не доберется. Простой анализ: гусеница за минуту проползает 1 см, а резину растягивают каждую минуту, прибавляя ей в длине еще 5 см. Вполне очевидно, что скорость гусеницы ниже, чем скорость увеличения длины резины, потому никуда она не доберется... С каждой минутой ее путь будет только увеличиваться.
Вот так мыслю:
через 1 мин - проползла 1 см, +5 см, осталось 9 см;
через 2 мин - проползла 2 см, +5 см, осталось (9-1)+5=13 см;
через 3 мин - проползла 3 см, +5 см, осталось (13-1)+5=17 см;
И так далее...
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
21.02.2014, 18:49 7
Grimmjow Jagger, скорость улитки 1 см/мин. Скорость растягивания - 5 см/мин. Следовательно, 5 см изначально длины она проползет за (1-5)/5 минут.
0
71 / 62 / 33
Регистрация: 03.09.2013
Сообщений: 306
22.02.2014, 00:14 8
insite2012, не совсем правильно, там не +5, а х2 так что ещё больше.
через 1 мин - проползла 1 см, 2х5 см,из за растяжения первый сантиметр превратился в 2 осталось 8 см;
через 2 минуты проползла +1 см(всего 3), 10х2 , пройденное улиткой тоже удваивается 6 осталось 14
через 3 +1см (7) 20х2 пройденное удвоенное 14, осталось 26.

вот только не совсем понял что значит
что ее первоначальная длина утраивается
Короче никогда не доползёт разрыв все больше будет становится с каждой итерацией.
0
Эксперт .NET
5534 / 4298 / 1217
Регистрация: 12.10.2013
Сообщений: 12,332
Записей в блоге: 2
22.02.2014, 00:17 9
Вот именно из-за этого "утраивается я и сделал вывод, что каждую минуту идет приращение на 5 см... Ну а так понятно, никогда этой бедняге не доползти до конца резины (при условии того, если ее постоянно будут тянуть).
0
Неадекват
1492 / 1230 / 246
Регистрация: 02.04.2010
Сообщений: 2,789
22.02.2014, 00:50 10
Отличная задача

Цитата Сообщение от pycture Посмотреть сообщение
Какой частью гусеница прочно держиться то? Задней или передней (она не точка на отрезке)?
А какая разница? Резина растягивается целиком, а не только та часть которая перед гусеницей.

Цитата Сообщение от insite2012 Посмотреть сообщение
никогда этой бедняге не доползти до конца резины (при условии того, если ее постоянно будут тянуть)
На самом деле ей потребуется ~85 минут.

Подсказка: Задача на оценку частичной суммы гармонического ряда. Под спойлером формула для расчета
Кликните здесь для просмотра всего текста
https://www.cyberforum.ru/cgi-bin/latex.cgi?\sum_{i=1}^{j-1}\frac{1}{i}\leq 5< \sum_{i=1}^{j}\frac{1}{i}
2
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
22.02.2014, 00:58 11
freeba, можно было бы догадаться, но довольно сложно
0
71 / 62 / 33
Регистрация: 03.09.2013
Сообщений: 306
22.02.2014, 01:18 12
даже не верится, но она все таки доползет.
код говорит что хватит всего 29 минут
C#
1
2
3
4
5
6
7
8
9
10
11
12
            int ulput = 0; // пройдено улиткой
            int put = 5; // длинна резинки
            int i = 0;  // счетчик
            while (ulput < put)
            {
                
                ulput = ulput + 1;
                put = put * 2;
                ulput = ulput * 2;
                richTextBox1.AppendText(i.ToString() + " " + ulput + " " + put+ Environment.NewLine);
                i++;
            }
и длинна будет миллиарды метров
1
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
22.02.2014, 01:32 13
К сожалению, лично у не получается решить аналитически, но свои мысли распишу:

Получаем разностную систему уравнений:

https://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{cases}  {ulput}_{k+1} = (ulput+1)*2  \\   {put}_{k+1} = put*2 \end{cases}

отсюда можно получить дифур:
https://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{cases}  \frac{dulput}{dt} = ulput+2  \\   \frac{dput}{dt} = put\end{cases}
Решив его относительно t можно получить аналитически без циклов, когда наступит сие счастье.
0
71 / 62 / 33
Регистрация: 03.09.2013
Сообщений: 306
22.02.2014, 01:32 14
а нет напутал, даже длинны ulong хватило только на 60 итераций. :eek: Кошмар, под конец у улитки скорость будет больше скорости света Прикольная задачка
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
22.02.2014, 01:48 15
Лучший ответ Сообщение было отмечено как решение

Решение

Блин, выше неправильно написал. Хотя логика такая.

Добавлено через 4 минуты
Правильный код:
C#
1
2
3
4
5
6
7
8
9
10
11
            double done = 0; // пройдено улиткой
            double delta = 5;
            double left = 5; // длинна резинки
            long i = 0;  // счетчик
            while (done < left)
            {
                done = (done + 1)*(left + delta)/left;
                left += delta;
                i++;
            }
            Console.WriteLine(i);
Добавлено через 4 минуты
Получается как-то так отсюда:
https://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{cases} \frac{dx}{dt} = (x+1)*(\frac{y+5}{y}) - x     \\  \frac{dy}{dt} = 5    \end{cases}
где x - путь улитки, а y - оставшийся путь.

Добавлено через 1 минуту
Насколько я понимаю, остается решить краевую задачу Коши и найти нужные значения.

Добавлено через 54 секунды
Хотя решение через ряды намного изящнее, но я его не понимаю
3
71 / 62 / 33
Регистрация: 03.09.2013
Сообщений: 306
22.02.2014, 01:58 16
Ваш код выдаёт 83 , мой при double уходит за 1000 минут.
Разница в коде в том что вы увеличиваете на 5 при каждой итерации, а я в двое.

из условия
Через минуту вы растягиваете резину так, чтобы она удлинилась вдвое
или условие некорректное или я что то не понял.
1
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
22.02.2014, 02:11 17
Driwars, дальше читайте , там где написано втрое. А последовательность x 2x 3x.. Вполне очевидна

Добавлено через 2 минуты
Driwars, что касается вашего кода: можете по тем дифур см что я выше написал для вашего варианта построить графики и увидите, что они расходятся, а значит при таком удвоении улитка никогда не доползет. Можете пару циклов прогнать: оставшийся путь увеличивается.
0
0 / 0 / 0
Регистрация: 17.02.2014
Сообщений: 19
22.02.2014, 03:21  [ТС] 18
Я рад что эта задача много кого заинтересовала))
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
22.02.2014, 07:52 19
Цитата Сообщение от freeba Посмотреть сообщение
А какая разница?
Если б она зацепилась обоими концами, то при достаточном натяжении самой гусеницы, отпустив сначала задние лапы, а потом передние, то она могда бы запуситить саму себя как из рогатки и долететь до конце резинки.
А в случае точки улитка никогда не достигнет другого конца. Резинка каждую минуту растягиватеся на 5 см. Улитка за каждую минуту перемещается на расстояние значительно < 5 см (и даже не более 2-х см). Ни о каких 85 мин речи быть не может.
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
22.02.2014, 08:20 20
Цитата Сообщение от pycture Посмотреть сообщение
А в случае точки улитка никогда не достигнет другого конца. Резинка каждую минуту растягиватеся на 5 см. Улитка за каждую минуту перемещается на расстояние значительно < 5 см (и даже не более 2-х см). Ни о каких 85 мин речи быть не может.
прикол в том что резинка растягивается в две стороны
например проползла 1 см осталось 4
растянули резину на 5 см( по 2.5 с каждого края)
от начала 3.5 до конца 6.5
проползла еще 1 см 4.5. -5.5
растянули 15 см получилось 7 и 8
проползла 8-8
растянули 10.5 10.5
проползла 11.5 9.5
растянули 14 12
вот так медленно но верно она приближается к краю

а если каждый раз удваивать длину то картинка меняется
1-4 3.5- 6.5
4.5-5.5 9-11
10-10 20-20
21-19 42-38
но тоже приближается к краю
0
22.02.2014, 08:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.02.2014, 08:20
Помогаю со студенческими работами здесь

Счетчик с прибавлением каждую минуту
Нужен счетчик, который будет добавлять, например, каждую минуту по два пункта. По принципу как...

Компьютер фризит каждую минуту
Господа, надеюсь вы мне поможете, всё перепробовал. Уже 3 неделю как наблюдаю рывки, фризы,...

Клик по кнопке каждую минуту
Привет форумчанам) Подскажите как сделать что бы программа кликнула на кнопку через 1 минуту ) Что...

Нажатие кнопки каждую минуту
Здравствуйте, нашёл следующий код: public MainForm() { var startTimeSpan =...

Поворот картинки каждую минуту
Суть программы в том, чтобы на форме отображалась картинка с песочными часами. Песок «высыпается» в...

Повторение запуска макроса каждую минуту
Dobyi denj! Kak mozno sdelatj, 4toby makros zapuskalsja kazduju minutu?? 4erez &quot;Ontime&quot; ne...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru