Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Office Новый топик    Ответить
 Эксель Период дроби  [new]
Нитка
Member

Откуда:
Сообщений: 8
Доброго времени суток всем!

Можно ли представить в дроби период в виде числа в скобках. Решить с помощью формул Эксель!
Варианты делимого и делителя могут быть абсолютно разные, т.е. те, что введет пользователь и если возникает дробь с периодом, то он должен отображаться в скобках.

Пример: 5/6 = 0,833333...=0,8(3). Вывод в ячейку должен быть 0,8(3)

Дробь может быть как чистая, так и смешанная.

2,7136136 = 2,7(136) - смешанная, то есть период начинается не сразу после запятой.
0,833333 = =0,8(3) - чистая, то есть период начинается сразу после запятой.

Если я правильно понимаю, нужно сначала формуле понять есть ли повторения, потом определить сколько цифр в повторении, т.е. период, ну и записать результат. Повторения можно вывести с помощью формулы MOD, но как определить цикличность - период, который должен быть в скобках, понять не могу.
26 сен 17, 10:26    [20822755]     Ответить | Цитировать Сообщить модератору
 Re: Эксель Период дроби  [new]
Нитка
Member

Откуда:
Сообщений: 8
Простите, чистая дробь 0,333333 = =0,(3) - чистая, то есть период начинается сразу после запятой.
26 сен 17, 10:28    [20822763]     Ответить | Цитировать Сообщить модератору
 Re: Эксель Период дроби  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 16249
Нитка
Можно ли представить в дроби период в виде числа в скобках. Решить с помощью формул Эксель
Точности не хватит. Уже для 1/19...
26 сен 17, 11:12    [20823018]     Ответить | Цитировать Сообщить модератору
 Re: Эксель Период дроби  [new]
Нитка
Member

Откуда:
Сообщений: 8
Akina,


Вот нашла алгоритм работы программы на языке php:
<В функцию поступают числовые значения: числитель (делимое) - $numerator и знаменатель (делитель) - $denominator.
Создается вспомогательный массив $array, в который будут записываться результаты деления.
Затем находим остаток от деления $numerator на $denominator - это $modulo.
Задаем счетчик $counter на 1. Образовываем цикл, который будет работать до тех пор, пока остаток $modulo будет равен нулю.
Заносим в массив значение счетчика. Остаток умножаем на 10, т.е. как при делении добавляем ноль.
При помощи функции explode извлекаем то, что находится до точки. И опять находим остаток - $modulo%=$denominator.
Добавляем единицу счетчику. Цикл будет прокручиваться до тех пор, пока не начнет повторяться остаток. Если остаток повторяется, то цикл обрывается.
Затем стоит вспомогательное условие. Если найден модуль, то отображается часть при делении до точки и обработанный период в скобках после точки. Иначе, если периода нет, то просто отображаем результат деления.>

Т.е. когда начинает повторятся остаток, то можно закончить вычисление.
Как это сделать при помощи формул Эксель?
26 сен 17, 11:57    [20823293]     Ответить | Цитировать Сообщить модератору
 Re: Эксель Период дроби  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 16249
Нитка
Вот нашла алгоритм работы программы
В начальной школе это называется "деление в столбик". Только хрена с два удастся это закодить формулой...
26 сен 17, 12:21    [20823375]     Ответить | Цитировать Сообщить модератору
 Re: Эксель Период дроби  [new]
Нитка
Member

Откуда:
Сообщений: 8
Akina,

Ну можно протянуть это деление в строчку, получить ряд, в ряду будут повторяющиеся значения

Например
1 3 6 1 3 6

Как теперь получить период (136)
26 сен 17, 12:31    [20823429]     Ответить | Цитировать Сообщить модератору
 Re: Эксель Период дроби  [new]
8y89ywefmn2
Guest
Если это учебная задача, то ТС должен знать про теорию чисел, теорию сравнений. Если практическая - то откуда ограничение на формулы только?

К сообщению приложен файл (Аримф.приложения.rar - 59Kb) cкачать
26 сен 17, 13:39    [20823721]     Ответить | Цитировать Сообщить модератору
 Re: Эксель Период дроби  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 16249
Нитка
Ну можно протянуть это деление в строчку, получить ряд, в ряду будут повторяющиеся значения
Достаточно взять в качестве делителя простое число, которое больше количества столбцов, чтобы обломиться.
26 сен 17, 13:45    [20823749]     Ответить | Цитировать Сообщить модератору
 Re: Эксель Период дроби  [new]
Нитка
Member

Откуда:
Сообщений: 8
Да, это учебная задача, можно ограничить вывод результата деления 20тью числами например, большая точность не нужна.
Если в этом диапазоне не будет периода, значит в период не выводим.
26 сен 17, 14:50    [20824066]     Ответить | Цитировать Сообщить модератору
 Re: Эксель Период дроби  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 16249
Нитка
можно протянуть это деление в строчку, получить ряд, в ряду будут повторяющиеся значения

Например
1 3 6 1 3 6

Как теперь получить период (136)
Для получения периода потребуется "протягивать" две строки - в первой очередная цифра частного, а во второй целочисленный остаток при делении в столбик. Затем в третьей строке для каждого остатка нужно считать смещение вперёд по строке до того же значения. Период начинается там, откуда это значение станет постоянным, а само значение равно длине периода.
26 сен 17, 15:02    [20824134]     Ответить | Цитировать Сообщить модератору
 Re: Эксель Период дроби  [new]
Нитка
Member

Откуда:
Сообщений: 8
Akina,

<Затем в третьей строке для каждого остатка нужно считать смещение вперёд по строке до того же значения. Период начинается там, откуда это значение станет постоянным, а само значение равно длине периода.>

А можно пример, как считать смещение вперед по строке до того же значения.
26 сен 17, 15:21    [20824207]     Ответить | Цитировать Сообщить модератору
 Re: Эксель Период дроби  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 16249
Нитка
как считать смещение вперед по строке до того же значения.
Функцией ПОИСКПОЗ()
26 сен 17, 15:28    [20824233]     Ответить | Цитировать Сообщить модератору
 Re: Эксель Период дроби  [new]
Cane Cat Fisher
Member

Откуда:
Сообщений: 1472
Нитка,

А какой смысл выводить дроби как периодические, если математически это неверно?

Например, если у вас в таблице сидит 0.999999, то это никак не единица, это другое число.
А если мы говорим про 0.(9) - то математически это и есть единица, самая настоящая, без всяких натяжек и погрешностей.

Если вы выведете в ячейку 0.(9), что потом с этим делать будете?
1 - 0.(9) сколько у вас получится?
26 сен 17, 22:52    [20825294]     Ответить | Цитировать Сообщить модератору
 Re: Эксель Период дроби  [new]
iMrTidy
Member

Откуда:
Сообщений: 568
Нитка,

Так подойдет?

К сообщению приложен файл (Fraction.xlsx - 106Kb) cкачать
27 сен 17, 02:02    [20825551]     Ответить | Цитировать Сообщить модератору
 Re: Эксель Период дроби  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 16249
Cane Cat Fisher
если мы говорим про 0.(9) - то математически это и есть единица

Увы...
0.(9) = 1 - (+0)
27 сен 17, 07:53    [20825637]     Ответить | Цитировать Сообщить модератору
 Re: Эксель Период дроби  [new]
Нитка
Member

Откуда:
Сообщений: 8
iMrTidy,

Спасибо! Это то, что нужно! Пойду разбираться, как это вы сделали в одной ячейке.

Пробовала с ПОИСКПОЗ(), как посоветовала Akina, получилось, но приходится создавать несколько доп.строк и не смогла понять как отсечь непериодическую дробь. Возможно так тоже можно, но не хватает знаний Эксель.

Сама задачка больше на умение пользоваться формулами Эксель, чем на математику. Спасибо всем!
27 сен 17, 09:18    [20825726]     Ответить | Цитировать Сообщить модератору
 Re: Эксель Период дроби  [new]
iMrTidy
Member

Откуда:
Сообщений: 568
Нитка,

Мое решение совсем не в одной ячейке, а с несколькими доп. столбцами. Не думаю, что можно сделать динамически в одной ячейке, в лучшем случае статически с copy-paste формулы.
27 сен 17, 09:40    [20825768]     Ответить | Цитировать Сообщить модератору
 Re: Эксель Период дроби  [new]
Нитка
Member

Откуда:
Сообщений: 8
iMrTidy,

Да, увидела. Мне как раз не хватало того способа, которым вы отсекаете непериодическую дробь в результате. Сейчас решение есть, спасибо!
27 сен 17, 10:21    [20825899]     Ответить | Цитировать Сообщить модератору
 Re: Эксель Период дроби  [new]
Gf6gdfh
Guest
Akina
Cane Cat Fisher
если мы говорим про 0.(9) - то математически это и есть единица

Увы...
0.(9) = 1 - (+0)
Нет. В курсе дискретной математики равенство как раз доказывается. Причём просто.
27 сен 17, 10:23    [20825916]     Ответить | Цитировать Сообщить модератору
 Re: Эксель Период дроби  [new]
iMrTidy
Member

Откуда:
Сообщений: 568
Gf6gdfh
дискретной математики


На то она и дискретная.
27 сен 17, 10:42    [20826001]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Office Ответить