|
вычисление факториала. Как вычислить факториал? | ☑ | ||
---|---|---|---|---|
0
YamEgor
13.11.20
✎
14:18
|
Добрый день подскажите что такое факториал и как он вычисляется? на собеседовании дали такое задание : "Нахождение факториала от числа, заданного в переменной N"
|
|||
1
mikecool
13.11.20
✎
14:20
|
ээээ, это же школьная программа
а так - рекурсия |
|||
2
polosov
13.11.20
✎
14:21
|
(0) Серьезно не знаешь? И не знаешь где посмотреть?
Не возьмут программистом с такими навыками. |
|||
3
polosov
13.11.20
✎
14:22
|
(1) Цикла достаточно ж вроде.
|
|||
4
mikecool
13.11.20
✎
14:23
|
(3) да я как то решал в школе, так в памяти и осталась рекурсия )
|
|||
5
ДенисЧ
13.11.20
✎
14:25
|
||||
6
acht
13.11.20
✎
14:26
|
(0) Вот, держи:
Процедура КнопкаВыполнитьНажатие(Кнопка) ПеременнаяN = 0; Если ВвестиЗначение(ПеременнаяN, "Введите значение переменной N") Тогда Факториал = 0; Если ВвестиЗначение(Факториал, "Введите значение факториала N") Тогда Предупреждение("Значение факториала " + ПеременнаяN + " равно " + Факториал); КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
7
ДенисЧ
13.11.20
✎
14:26
|
(4) to iterate is human to recurse divine (Питер Дойч)
|
|||
8
Kassern
13.11.20
✎
14:46
|
(0) Чтоб ты понимал факториал 5 равен: 5!=1*2*3*4*5=120
Дальше думаю и школьник разберется как в цикле для N числа посчитать факториал. |
|||
9
vladko
13.11.20
✎
14:51
|
(0) я тоже при приёме собеседования задавал сразу сходу придумать алгоритм вычисления факториала от числа. Сразу видно, если ли алгоритмическое мышление у кандидата в падаваны или нет.
|
|||
10
Kassern
13.11.20
✎
14:54
|
(9) У меня в свое время была другая задачка, но тоже интересная при приеме. Есть 2 числа А,Б нужно поменять значения переменных местами без использования третьей переменной.
|
|||
11
ДенисЧ
13.11.20
✎
14:59
|
(10)
#!\user\bin\python # заполнение данных (b,a)=(a,b) # вывод результата ))) |
|||
12
Asmody
13.11.20
✎
15:01
|
(11) в первой строке какая-то фигня
|
|||
13
Волшебник
13.11.20
✎
15:02
|
(1) Лучше циклом
|
|||
14
Малыш Джон
13.11.20
✎
15:04
|
Серьезно? "Что такое факториал?" ???
|
|||
15
ДенисЧ
13.11.20
✎
15:06
|
(12) s\user\usr\
|
|||
16
ДенисЧ
13.11.20
✎
15:06
|
s/\\/\/\
|
|||
17
Kassern
13.11.20
✎
15:08
|
(11) Давай еще обертку ком сделаем чтобы вызывать скрипты питона сразу из 1с)
|
|||
18
Ненавижу 1С
гуру
13.11.20
✎
15:09
|
на собеседовании надо уметь разными способами
|
|||
19
acht
13.11.20
✎
15:14
|
(10) Упражнение из первого тома Кнута, примерно 18 страница:
Докажите, что если n - целое число, n > 2, то уравнение x^n + y^n = z^n неразрешимо в целых положительных числах x, y, z =) |
|||
20
ДенисЧ
13.11.20
✎
15:15
|
(17) Ком устаревшая технология. Нужен хппт-сервис и 7 микросервисов с лоад-балансером.
|
|||
21
Волшебник
13.11.20
✎
15:15
|
(18) За вычисление факториала рекурсией можно бить по рукам. Дело в том, что при достаточно большом N возникнет переполнение стека и 1С вылетит с дампом, только мяукнув в технологический журнал. Ошибки не будет, сразу вылет.
|
|||
22
ДенисЧ
13.11.20
✎
15:15
|
(19) Решение есть?
|
|||
23
ДенисЧ
13.11.20
✎
15:15
|
(21) Не вылетит. Раньше переполнение по размеру числа будет
|
|||
24
acht
13.11.20
✎
15:17
|
(22) "автор данной книги будет очень признателен, если ему сообщат решение как можно быстрее (при условии, что оно правильно)"
|
|||
25
Kassern
13.11.20
✎
15:17
|
(17) А для большего изврата можно поднять fastAPI через питон и воткнуть на гет запрос ответ с нужными значениями переменных. в 1с через html документ воткнуть js скрипт, который обратиться нужному ресурсу по кнопке и отобразит полученные данные)
|
|||
26
acht
13.11.20
✎
15:19
|
(25) При этом используя авторизацию openid, это важно!
|
|||
27
Волшебник
13.11.20
✎
15:23
|
(23) Проверил. Вылетает
|
|||
28
Lama12
13.11.20
✎
15:35
|
(8) Не забудь сказать что 0!=1. :-)
|
|||
29
Lama12
13.11.20
✎
15:37
|
(19) Это вроде одна из задач тысячелетия.
|
|||
30
RomanYS
13.11.20
✎
15:39
|
(29) Теорема Ферма, вроде решена уже.
(24) автору сообщили уже :)? |
|||
31
ДенисЧ
13.11.20
✎
15:40
|
(27) Да и фиг с ней. Поставь 64бит клиента
(29) Обычно это люди называют теоремой Ферма... (30) Полностью - нет. Доказаны теоремы, которые к ней сводятся |
|||
32
ДенисЧ
13.11.20
✎
15:41
|
(28) 0 != 1 === true...
|
|||
33
Lama12
13.11.20
✎
15:43
|
(30) Вот блин. Не узнал ее. :-( Старею.
|
|||
34
dmpl
13.11.20
✎
15:45
|
(19) Правильный ответ на собеседовании: "Какое это отношение имеет к программированию? Есть задача - надо решать."
|
|||
35
Ненавижу 1С
гуру
13.11.20
✎
15:45
|
(21) не надо никого бить, надо просто уметь и таким способом
|
|||
36
Волшебник
13.11.20
✎
15:48
|
(31) 64-битный клиент не поможет, потому что переполняется стековая память, а не память кучи.
|
|||
37
Малыш Джон
13.11.20
✎
15:50
|
(31) а за что же тогда Абелевскую премию дали?
|
|||
38
RomanYS
13.11.20
✎
15:51
|
(31) Ну проверять решение я не полезу :), но поверю вики (и обрывкам воспоминаний), что доказана полностью и ещё в прошлом тысячелетии
https://ru.wikipedia.org/wiki/Великая_теорема_Ферма |
|||
39
ДенисЧ
13.11.20
✎
15:55
|
(37) (38) Ну и фиг с ним, не из моего кармана (если) выдали... )))
Я не очень слежу за таким. Доказали - так доказали, лишили меня удовльствия на пенсии покорпеть |
|||
40
Kigo_Kigo
13.11.20
✎
15:58
|
(10)
А= А*Б; Б =А/Б; А=А/Б; ))) |
|||
41
NeiTRoN4ik
13.11.20
✎
16:08
|
(40) ога, например 0 и 3 ))
|
|||
42
Kassern
13.11.20
✎
16:16
|
(41) ахах я спецом про 0 не написал)) думал попадется кто нить) я сам в свое время, когда решал так же замутил через умножение, на что мне так же на 0 ткнули)
|
|||
43
Kigo_Kigo
13.11.20
✎
16:17
|
(41) ладно пойдем другим путем,
а= а+б б=а-б а=а-б |
|||
44
Малыш Джон
13.11.20
✎
16:17
|
(40) Неплохо))
А = Ln(B)/Ln(A); B = B^(1/A); A = A^B; |
|||
45
Малыш Джон
13.11.20
✎
16:18
|
(43) но это то уж банально и неинтересно)
|
|||
46
Kigo_Kigo
13.11.20
✎
16:19
|
(43) Кстати по мат правила работает и для отрицательных чисел, причем (40) плохо стработает с дробными частями из-за округления )))
|
|||
47
Chameleon1980
13.11.20
✎
16:28
|
крепкий орешек
|
|||
48
Kassern
13.11.20
✎
16:32
|
(44) В конце наверное вместо A^B нужно B^A
|
|||
49
Малыш Джон
13.11.20
✎
16:34
|
(48) да, верно)
|
|||
50
Bigbro
13.11.20
✎
16:38
|
для больших N понадобятся специальные методы,
а так циклом конечно |
|||
51
YamEgor
13.11.20
✎
16:43
|
Нифига столько написали пока я думал !!
Факториал = 1; Для Сч = 1 По ЧислоN Цикл Факториал = факториал * Сч; КонецЦикла; вот так будет )) есть еще задачи написать? |
|||
52
Ненавижу 1С
гуру
13.11.20
✎
16:48
|
Процедура ВыражениеВычислить(Команда)
А = 4.25; Б = 4; Для й=1 По 100 Цикл Ц = Шаг(А,Б); Б = А; А = Ц; КонецЦикла; КонецПроцедуры Функция Шаг(А,Б) Возврат 108 - (815-1500/Б)/А; КонецФункции Чему будет равно Ц в результате? |
|||
53
YamEgor
13.11.20
✎
17:03
|
Сделать матрицу случайных чисел 5 x 5. Вывести пользователю. Получить по исходной матрице транспонированную матрицу. Вывести пользователю.
не пойму как это: Сделать матрицу случайных чисел 5 x 5? И что такое транспонированную матрицу? |
|||
54
NeiTRoN4ik
13.11.20
✎
17:07
|
(53) 1 - двумерный массив. 2 - примерно, как в (5) =)
|
|||
55
Ненавижу 1С
гуру
13.11.20
✎
17:22
|
(53) надо прокаичать математическое образование
https://ru.wikipedia.org/wiki/Транспонированная_матрица |
|||
56
RomanYS
13.11.20
✎
17:24
|
(52) Это для устного счёта или можно в 1С загнать?
|
|||
57
Ненавижу 1С
гуру
13.11.20
✎
17:27
|
(56) в 1С оно дает 100
но верный ответ должен быть близок к 5 |
|||
58
RomanYS
13.11.20
✎
17:29
|
(57) Но это код на 1С, поэтому "верный" звучит двусмысленно :)
|
|||
59
МихаилМ
13.11.20
✎
17:46
|
на ис один человек развлекся факториалом
http://catalog.mista.ru/1c/articles/1256963/ http://catalog.mista.ru/1c/articles/1257170/ |
|||
60
YamEgor
13.11.20
✎
17:53
|
вот еще: Убрать условный оператор «Если» из следующего блока (А может принимать значение 0 или Если (А = 0) Тогда
B = 2; Иначе В = 1; КонецЕсли; не пойму что здесь надо? |
|||
61
Ботаник Гарден Меран
13.11.20
✎
17:59
|
Можно в Excel быстро состряпать.
4.64473684210522 |
|||
62
Ботаник Гарден Меран
13.11.20
✎
17:59
|
Предыдущий к (52).
|
|||
63
DTX 4th
13.11.20
✎
18:00
|
Теорему ферма доказали таки??? Круто
Последнее, что я помню - кто-то выкатил доказательство, но оно было сложным, а все остальные уже задолбались проверять неправильные доказательства, и все как-то застыло на месте) Побольше бы таких веток) (52) В чем прикол? |
|||
64
Ненавижу 1С
гуру
13.11.20
✎
18:01
|
(60) в = а+2;
|
|||
65
Ненавижу 1С
гуру
13.11.20
✎
18:03
|
(58) из-за ошибок округления результат скатывается к неверному пределу
|
|||
66
RomanYS
13.11.20
✎
18:09
|
(65) Причины понятны, только код на 1С не надо давать, а то доказать что результат не верный де-юре уже нельзя)
|
|||
67
RomanYS
13.11.20
✎
18:10
|
(64) прикол?
В = ?(А = 0, 2, 1); |
|||
68
Ботаник Гарден Меран
13.11.20
✎
18:19
|
(60)
Это задача не про 1С. y = 2-ЗНАК(x)*ЗНАК(x) |
|||
69
YamEgor
13.11.20
✎
18:28
|
(67) ага, кажется так!
|
|||
70
Ненавижу 1С
гуру
13.11.20
✎
18:41
|
(67) ну формально да, но условный оператор остался
|
|||
71
bolder
13.11.20
✎
18:41
|
(0) Адекватный работодатель. Думаю у него еще не мало вопросов!
|
|||
72
Провинциальный 1сник
13.11.20
✎
18:59
|
Если факториал большой (больше n>100), то смысла его считать циклом нет, надо считать по формуле Стирлинга
https://ru.wikipedia.org/wiki/Формула_Стирлинга |
|||
73
СвинТуз
13.11.20
✎
18:59
|
(21)
На собеседованиях есть вопрос по рекурсии? |
|||
74
Креатив
13.11.20
✎
19:08
|
В (60) задание написано криво. Не хватает скобки. Думаю, что если всё переписать аккуратно, то код упростится до
в=2; |
|||
75
Волшебник
13.11.20
✎
19:25
|
(73) Да. Приведите пример полезного применения рекурсии при автоматизации экономической деятельности предприятия, т.е. не вычисление факториала.
|
|||
76
bolder
13.11.20
✎
19:33
|
(75) Ежедневный пример -УПП и ERP, получение структуры изделия в рекурсии.
|
|||
77
rphosts
13.11.20
✎
19:34
|
(27) Эээээ, у меня скажем так 8.2.13 при сложении в рекурсии 1+2+3+4... скажем так вылеты были между 5К и 6К. На более старших релизах не пробовал
|
|||
78
МихаилМ
13.11.20
✎
19:36
|
||||
79
YamEgor
13.11.20
✎
19:37
|
(71) вот еще один:
4. Реализовать алгоритм в 1С Вводятся целые числа a и b. Гарантируется, что a не превосходит b. Выведите (через пробел) все четные числа от a до b (включительно). я так и не понял сколько там чисел между a и b? или от фонаря взять? |
|||
80
Конструктор1С
13.11.20
✎
19:39
|
(1) рекурсия для факториала не нужна, достаточно цикла
|
|||
81
Креатив
13.11.20
✎
19:40
|
(79)Это уж совсем просто. Цикл для от а до b. Если остаток от деления счётчика на 2 равен нулю, то число чётное.
|
|||
82
Волшебник
13.11.20
✎
19:41
|
(79) их там примерно (b-a)/2
|
|||
83
Волшебник
13.11.20
✎
19:41
|
(81) медленно.
Надо найти первое чётное и затем циклом +2, +2... |
|||
84
Конструктор1С
13.11.20
✎
19:42
|
Ай, блин. Уже наотвечали про цикл...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |