|
Дайте функцию целочисленного деления 🠗 (Волшебник 13.10.2020 09:01) | ☑ | ||
---|---|---|---|---|
0
Маленький Вопросик
12.10.20
✎
17:05
|
Товарищи, дайте функцию целочисленного деления: например на входе 5 и 3 - на выходе 3,1,1
Или 7 и 4 - на выходе 4, 1, 1,1 Спасибо! |
|||
1
ДенисЧ
12.10.20
✎
17:09
|
А можно логику, по которой из 5 и 3 получается 3,1,1 ?
|
|||
2
Андроны едут
12.10.20
✎
17:10
|
а если 17 поделить на 4 - что вы ожидаете увидеть?
|
|||
3
Irbis
12.10.20
✎
17:10
|
% вроде возвращает остаток от деления, а уж целую часть и так можно получить.
|
|||
4
PR
12.10.20
✎
17:14
|
(2) 4, 1
|
|||
5
PR
12.10.20
✎
17:14
|
(0) Такой наркоманской функции нет, пиши сам
|
|||
6
Dmitry1c
12.10.20
✎
17:15
|
(5) а у него будет.
|
|||
7
Маленький Вопросик
12.10.20
✎
17:15
|
17/4 = 4,25 = 5 , 17 - 5 = 12, 12/3 =4
5,4,4,4,4 |
|||
8
Dmitry1c
12.10.20
✎
17:16
|
(0) а почему на входе 5 и 3 - на выходе не 3,2?
|
|||
9
PR
12.10.20
✎
17:16
|
Функция-то простая
Берем Цел от числа и к ней % от числа раз прибавляем ", 1" |
|||
10
Маленький Вопросик
12.10.20
✎
17:16
|
5,4,4,4
|
|||
11
PR
12.10.20
✎
17:16
|
Ааааа, держите наркомана!
|
|||
12
Маленький Вопросик
12.10.20
✎
17:18
|
(11) ну так ты напиши....
|
|||
13
polosov
12.10.20
✎
17:19
|
(10) Моргни 2 раза, если тебя приковали к батарее в цыганском ломбарде и заставили его автоматизировать.
|
|||
14
PR
12.10.20
✎
17:19
|
(12) Да я до (7) и (10) думал, что функция типа (9), а тут вообще что-то люто наркоманское, я даже не понял еще, что делается-то
|
|||
15
ДенисЧ
12.10.20
✎
17:20
|
Вроде не пятница...
|
|||
16
mikecool
12.10.20
✎
17:21
|
сборище наркоманов... еще и понять это пытаются )))
|
|||
17
RomanYS
12.10.20
✎
17:24
|
(16) Ну такое не каждый день подвозят)
|
|||
18
RomanYS
12.10.20
✎
17:25
|
(7) а почему тогда в (0)
для 5/3 не 2,2,1 для 7/4 не 2,2,2,1? |
|||
19
Ботаник Гарден Меран
12.10.20
✎
17:26
|
Разложить на сумму простых чисел?
|
|||
20
Ботаник Гарден Меран
12.10.20
✎
17:27
|
Ааа, 4 - не простое число.
"Курильщики!" (С) Водный мир. |
|||
21
RomanYS
12.10.20
✎
17:27
|
(19) :)))
4 - не простое |
|||
22
Андроны едут
12.10.20
✎
17:30
|
(10) неправильно, должно быть так: 17/4 = 4+4+4+4+1
|
|||
23
Андроны едут
12.10.20
✎
17:31
|
(22) а 18/4 - 4,4,4,4,1,1
|
|||
24
Garykom
гуру
12.10.20
✎
17:32
|
(23) Объясни почему не 4,4,4,4,2 ?
|
|||
25
Garykom
гуру
12.10.20
✎
17:33
|
(0) Почему не 3,2 и не 4,3 ?
|
|||
26
Андроны едут
12.10.20
✎
17:33
|
(24) потому-что используем только делитель и единицу
|
|||
27
RomanYS
12.10.20
✎
17:34
|
(22) а критерии правильности какие нателепатировал?
(22) делишь на четверых, а слагаемых 5. А в (23) вообще 6 |
|||
28
Garykom
гуру
12.10.20
✎
17:34
|
(26) а терь смотри (7) и скажи где "единицы" ?
|
|||
29
RomanYS
12.10.20
✎
17:38
|
(0) В какой конфе нужно? Подскажу готовую функцию ))
|
|||
30
Андроны едут
12.10.20
✎
17:38
|
(28) так я и написал, что это неправильно, а правильно в (22) Логика такая - разложить число на сумму делителя и единицы. Так я понял задачу из примеров в топике. Если у вас другое понимание - дерзайте)
|
|||
31
VladZ
12.10.20
✎
17:39
|
Что за наркомания?
|
|||
32
RomanYS
12.10.20
✎
17:39
|
(31) Телепатию тренируем
|
|||
33
Андроны едут
12.10.20
✎
17:40
|
(31) понедельник день тяжелый
|
|||
34
Fish
12.10.20
✎
17:41
|
(24) Потому что делим на 4, значит, результат должен быть из 4-х чисел.
|
|||
35
ZDenis
12.10.20
✎
17:41
|
Может кто-то объяснить (7). Если в (0) еще как то можно понять, то в (7) ничего не понимаю
|
|||
36
Сияющий в темноте
12.10.20
✎
17:41
|
функция целочисленного деления-это div процессора,когда в одном регистре делимое,а в другом делитель
получаем же мы в первом неполное частное,а во-втором,остаток. все остальные функции к целочисленному делению имеют очень оплсредованное выражение. то есть формула делимое=делитель*НеполноеЧастное+Остаток |
|||
37
Fish
12.10.20
✎
17:42
|
+(4) Когда делим 5 на 3 - то в результате 3 числа.
|
|||
38
Андроны едут
12.10.20
✎
17:42
|
(34) тогда не будет однозначности результата
|
|||
39
Fish
12.10.20
✎
17:44
|
(38) Ну тут вообще сложно понять, что хочет ТС. Но по (0) и (10) такая закономерность прослеживается.
|
|||
40
rphosts
12.10.20
✎
17:45
|
(0) я так понимаю что ты текущий день поделил на 7 =и получил что сегодня пятница... нет, дружок, сегодня понедельник, но настроение ты поднял, как минимум мне
|
|||
41
VladZ
12.10.20
✎
17:45
|
А зачем эти нелепые телодвижения?
|
|||
42
RomanYS
12.10.20
✎
17:53
|
ладно, ТС на (29) не отвечает.
Мой телепат мне говорит, что в (0) он всё перепутал. А для (7) ему нужно что-то похожее на: Функция РазделитьПочтиПоровнуНацело(Делимое, Делитель) База = Новый Массив(); Для инд = 1 По Делитель Цикл База.Добавить(1); КонецЦикла; Возврат ОбщегоНазначения.РаспределитьСуммуПропорциональноКоэффициентам(Делимое, База, 0);//БСП КонецФункции // () |
|||
43
Андроны едут
12.10.20
✎
17:53
|
(41) ну я бы не сказал, что это нелепые телодвижения. Я, как человек с профильным математическим образованием, могу рассматривать тему из топика как начало исследования некой алгебраической группы. С целью написания в дальнейшем диссертации))
|
|||
44
mikecool
12.10.20
✎
18:01
|
вы тут пишете дофина, а автор сидит в углу и курит, и ржет
|
|||
45
hhhh
12.10.20
✎
18:48
|
(34) чего вы не понимаете? Это деление по упаковкам. Если в упаковке 4 штуки, значит, чтобы получить 17, нужно взять 4 целых упаковкм и 1 отдельную штуку. Будет 4+4+4+4+1. Это для грузчиков. Экстрасенсы блин.
|
|||
47
Креветос
12.10.20
✎
19:16
|
(0) Почему при делении 5 на 3 получается 3 1 1, а не 1 2 2?
Счетчик будет 3. На него всегда делим. 5 / 3 = 1 + 2/3 берем результат 1, записываем в ответ. Отнимаем результат из общего количества: 5 - 1 = 4. Уменьшаем счетчик 3 на единицу, будет 2. Делим оставшееся количество 4 на счетчик 2: 4 / 2 = 2 берем результат 2, записываем в ответ. Там уже 1 2. Отнимаем результат из общего количества: 4 - 2 = 2. Уменьшаем предыдущий счетчик 2 на единицу, будет 1. Делим 2 из предыдущего выражения на счетчик. 2 / 1 = 2. берем результат 2, записываем в ответ. Там уже 1 2 2. Отнимаем результат из общего количества: 2 - 2 = 0. Уменьшаем предыдущий счетчик 0 на единицу, будет 0 Счетчик достиг нуля, общее количество тоже ноль. Цикл завершается. Ответ 1 2 2 |
|||
48
Креветос
12.10.20
✎
19:17
|
7 делим на 4 получается по такому же алгоритму:
1 2 2 2 |
|||
49
Креветос
12.10.20
✎
19:18
|
(2) 17 делим на 4 получается:
4 4 4 5 |
|||
51
Креветос
12.10.20
✎
19:27
|
(50) Ты че, больной? Чел задал конкретный вопрос, я ему ответил.
|
|||
52
Креветос
12.10.20
✎
19:36
|
Другой вариант, более быстрый, без цикла.
К примеру делим 17 на 4: 17 / 4 = 4.25 Берем дробную часть частного 0.25, умножаем на 4, получается 1. Это значит что результат будет состоять из 1 числа, котороя больше чем целая часть частного на 1 (в данном случае это 4 + 1 = 5), а остальные числа будут равны целой части частного, то есть 4. Итого ответ: 5 4 4 4 |
|||
53
RomanYS
12.10.20
✎
19:49
|
(52) >>Берем дробную часть частного 0.25, умножаем на 4, получается 1.
ОстатокОтДеления = Делимое % Делитель; |
|||
54
hhhh
12.10.20
✎
20:15
|
(52) ты (45) читал. Упаковки только одного вида - по 4 шт. По 5 штук нету.
поэтому ответ 4 4 4 4 1. Четыре целые упаковки и одна штука отдельная. |
|||
55
МихаилМ
12.10.20
✎
20:27
|
(54)
в (10) у автора другой ответ - 5,4,4,4 так что есть упаковки по 5 штук. |
|||
56
aka AMIGO
12.10.20
✎
20:57
|
Без единиц измерения задача весьма неоднозначная, и запутывает, потому в ветке нет единого мнения.
|
|||
57
Ненавижу 1С
гуру
12.10.20
✎
21:17
|
Функция Раскурить(А,Б)
Результат = Новый Массив(Б); Остаток = А % Б; НеполноеЧастное = (А-Остаток)/Б; Для й=0 по Результат.ВГраница() Цикл Результат[й] = НеполноеЧастное + ?(й=0,Остаток,0); КонецЦикла; Возврат Результат; КонецФункции |
|||
58
RomanYS
12.10.20
✎
21:21
|
(57) может так?
Результат[й] = НеполноеЧастное + ?(й < Остаток , 1, 0); |
|||
59
Ненавижу 1С
гуру
12.10.20
✎
21:23
|
(58) нет, иначе не получите: "7 и 4 - на выходе 4, 1, 1,1"
|
|||
60
RomanYS
12.10.20
✎
21:44
|
(59) а да, прикольно, у тебя получилось (0) и (7) в одну "формулу" загнать. Респект.
Осталось дождаться ТС и узнать, что ему всё-таки было нужно и зачем)) |
|||
61
Креветос
12.10.20
✎
22:17
|
(54) Читал. Там какая-то хрень ненужная.
|
|||
62
hhhh
12.10.20
✎
23:01
|
(61) нужно разбить на упаковки. сколько целых упаковок, а сколько россыпью.
|
|||
63
Михаил Козлов
12.10.20
✎
23:53
|
(62) Выражаясь "высоким" стилем: найти лексикографически "первое" решение уравнения: СУММА(Аi*Xi)=B в целых положительных. Лексикографически по Ai (Ai>Aj при j>i, т.е. с наибольшим числом больших упаковок). Решение существует если НОД(Ai) = НОД(Ai,B). Решение очевидно: Xi = Bi%Ai, где B1 = B, Bi=B(i-1)-Ai*Xi.
|
|||
64
palsergeich
13.10.20
✎
00:33
|
Короче.
Задача на размен. На входе есть любое число. А у тебя в кассе есть только делитель и 1чки. Школа же. |
|||
65
RomanYS
13.10.20
✎
00:35
|
(62) (64) посмотрите (7)
|
|||
66
palsergeich
13.10.20
✎
00:38
|
(65) Я вот это не понял
17/4 = 4,25 = 5 Как? |
|||
67
RomanYS
13.10.20
✎
00:47
|
(66) Это у ТС надо спросить :)
Под (0) и под (7) только (57) подходит. А вот зачем ТСу такое распределение - загадка, весьма вероятно, что он просто накосячил и ему нужны ваши упаковки или "поделить приблизительно поровну" |
|||
68
Михаил Козлов
13.10.20
✎
08:55
|
(63)+ Если иметь в виду (62), ошибся. Нужно минимизировать число упаковок: СУММА(Xi), а это ранец.
Жадный алгоритм в (63) может не дать решения: например, 3 упаковки 4,3 и 1 шт. Нужно подобрать 6. "Жадное" решение (1,0,2), а нужно (0,2,0). |
|||
69
mikecool
13.10.20
✎
08:56
|
Один глупец может задать вопрос, который не решить и сотне мудрецам...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |