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

Hed-kun

Программирование, т. 6

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

там ведь одна на каждый вызов + одна логическая

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

построй дерево вызовов функции fib(5) и всё станет ясно

 

Раз вы тут эксперты в рекурсии, у меня вопрос по поводу не примитивно рекурсивной функции, кто знает почему у меня ackermann функция на 4,1 крашиться, ноут слабый или студия херово настроена, вроде как 4,1 еще должен считаться без особых проблем.

с чем крашится-то?

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


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

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

 


int ack(int m, int n)
{
if (m == 0) return n + 1;
if (n == 0) return ack(m - 1, 1);
return ack(m - 1, ack(m, n - 1));
}

int main()
{
int a;
a = ack(4, 1);
cout << a << endl;
return 0;
}

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


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

когда я писал пост про рекурсию я думал что линейный алгоритм через динамическое программирование лучший

но оказывается есть и за логарифм решение

https://habrahabr.ru/post/261159/

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


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

An unhandled exception of type 'System.StackOverflowException' occurred in mscorlib.dll

 

 

45625000 calls so far

45626000 calls so far // это кол-во рекурсивных вызовов

 

Process is terminated due to StackOverflowException.

 

 

 

^ это по-поводу акермана, я тупо скопировал твой код так


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

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


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

а откуда ты инфу берешь?

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


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

тракаю в коде? :trollface:

 

	static int cnt = 0;

	private static int ack(int m, int n)
	{
		cnt++;
		if (cnt%1000 == 0)
		{
			Console.WriteLine("{0} calls so far", cnt);
		}

		if (m == 0) return n + 1;
		if (n == 0) return ack(m - 1, 1);
		return ack(m - 1, ack(m, n - 1));
	}

	public static void Main_2(string[] args)
	{
		int res = -1;
		try
		{
			res = ack(4, 1);
		}
		catch (StackOverflowException ex)
		{
			Console.WriteLine(ex.Message);
		}
		Console.WriteLine("Counted {0} in {1} calls.", res, cnt);
	}

 

к слову стаковерфлоу какой-то специфическтй эксепшн и try-catch его не ловит, так что прога по-любому вылетит

и да, это шишарп но я не думаю что С/С++ тут принципиально отличаются и если шарп не выдеживает 45млн фреймов то вряд ли что-то другое выдержит особо больше


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

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


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

на счет "специфического" екзепшна

в джаве есть вот такая базовая иерархия

jlrf0901.gif

 

jlrf0902.gif

 

всё что после Error не ловится, потому что выполнение кода пошло по пизде

думаю в шарпе так же


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

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


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

да, похоже на то

я когда пробовал точку выполнения поменять - мне сказало "чота не вышло, у вас или вылетело СО или убитый тред"

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


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

Апну тему :trollface:

https://medium.com/u...er-77deeb238e83

Как я понял медиум это новый хабр?


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

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


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

разве что новый мегамозг


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

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


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

Апну тему :trollface:

https://medium.com/u...er-77deeb238e83

Как я понял медиум это новый хабр?

скорее просто ЖЖ, это обычная блог платформа. я не так много технических статей там находил

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


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

кто-нибудь проплачивал джавараш? начал джаву учить, дошел почти до 10

или дальше можно по книгам\ютаб\ менее объемным курсам нормально во всем разобраться?

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


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

недавно челик в пм отписал по джаве я ему скинул ссылку /watch?v=1lqf3R-QQUE&list=PLR7tW79XkEKRCy4XRSk_sGlx32ShtIhI-

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

 

главное больше писать кода и разбираться в нём, а не просто смотреть/читать лекции

Fulgrimka понравилось это

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


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

кто-нибудь проплачивал джавараш? начал джаву учить, дошел почти до 10

или дальше можно по книгам\ютаб\ менее объемным курсам нормально во всем разобраться?

задаюсь тем же вопросом. в любом случае параллельно нужно читать какую нибудь книгу, я думаю начать head first java, потому что на какой нибудь совсем лютый талмуд типа шилдта или двухтомник хорстмена и корнелла у меня нет настроения пока.

 

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


Лишь ощутив баттхерт до конца, мы обретаем свободу

bf4ffc239860.png

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


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

Приходишь такой с работы а на почте письмо от чела, который предлагает запилить пару демок с использованием его либ в обмен на фичеринг/репостинг и так далее. И там не абы какой хуй, который запилил богом забытую либу, а вот этот чел http://desandro.com/ https://twitter.com/desandro (автор масонри, изотопа + еще связан с bower и другими известными вещами). Пиздос блядь, не каждый день такие ништяки подъезжают :avtoradolf: :avtoradolf: :avtoradolf:


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

userbar-53933.png

http://codepen.io/suez/ - they see me bydlocoding, they hatin.

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


Ссылка на сообщение
Гость Camus

мансори десять лет назад использовал

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


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

Ему офк надо не для этого старья. А что-нибудь для этого http://metafizzy.co/

Правда хз че пилить, буду из него идеи выбивать.


userbar-53933.png

http://codepen.io/suez/ - they see me bydlocoding, they hatin.

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


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

мансори десять лет назад использовал

Норм же тема, если надо кубики друг под другом выстроить.


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

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


Ссылка на сообщение
Гость Camus

Ему офк надо не для этого старья. А что-нибудь для этого http://metafizzy.co/

Правда хз че пилить, буду из него идеи выбивать.

У него коммерческие лицензии, продает свое дерьмо за деньги в 2016.

 

Я бы не стал для него что-либо делать, особенно бесплатно.

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


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

кто-нибудь проплачивал джавараш? начал джаву учить, дошел почти до 10

или дальше можно по книгам\ютаб\ менее объемным курсам нормально во всем разобраться?

До 10-го уровня ничего толкового не рассказывают. Стоит оплатить. Всего 2 к - не очень много.


Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
 

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


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

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