Имя: Пароль:
IT
 
Дайте функцию целочисленного деления
🠗 (Волшебник 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
Один глупец может задать вопрос, который не решить и сотне мудрецам...