Страница 2 из 2

Re: ТроичнаяСС-->ДесятичнаяСС

Добавлено: 07 янв 2008, 15:55
somewhere
&quot писал(а):придется переобдумать практически всю программу.
Если ты еще этого не сделал, то не поверив мне потерял много времени. За примером далеко не пойду, я тебе таких еще милион найду:

1/2 = 0.11111111111111111111111... = 0.(1) - в троичной
1/135 = 0.000012101210121012101... = 0.000(0121) - в троичной
1/2 + 1/135 = 137/270 = 0.111200220022002... = 0.111(2002) - в троичной

Вот переобдумывай теперь ;)

Re: ТроичнаяСС-->ДесятичнаяСС

Добавлено: 07 янв 2008, 20:56
Monopo
Да.. Я думаю, просто тебя не совсем понимаю.. И думаю, не пойму..
Но вот что меня смутило, так это 137/270..... Хотя 3 в любой степени не даст 270..
Я ведь буду вводить конечное число в троичной СС..
Тогда получу..
...слагаемые для целой части... + {х1}/3 + {х2}/9 + {х3}/27 + ... {хn}/k
Приводим к общему знаменателю.. {х1}/3 + {х2}/9 + {х3}/27 + ... {хn}/k == (k{х1}/3 + k{х2}/9 + ... + {хn}) / k
В итоге получаем бесконечную периодическую дробь в десятичной СС.
Бесконечную то это точно, ведь после запятой единица или двойка хоть раз делятся на 3 и дают бесконечную дробь, а вот насчет периода я все ж не убежден.
Я вообще в правильном русле мыслю хоть, насчет вычислений? В школе вроде так учили.

Re: ТроичнаяСС-->ДесятичнаяСС

Добавлено: 07 янв 2008, 22:15
somewhere
Ты то наверное правильно мыслишь, это я не до конца понял конечную цель. При переводе из троичной СС с конечным числом знаков после запятой могут получиться числа вида
A.(B)
A.(0) - т.е. целые
A.B(C) - приведу пример:
0.1001 - в троичной, при переводе в десятичную = 1/3 + 1/243 =
= 0.(3) + 0.00(411522633744855967078189300) = 0.33(744855967078189300411522633)

Хотя я сначала думал наоборот, из 10-ой в 3-ую, но как видишь это все же не поменяло расклад вещей. Периоды могут быть большими, но они всеже есть, Monopo :)

Re: ТроичнаяСС-->ДесятичнаяСС

Добавлено: 07 янв 2008, 23:06
Monopo
Ну тут же тоже можно сделать 0.(3) + 0.00(411522633744855967078189300) = .(3) + 0.(004115226337448559670781893) = 0.(337448559670781893004115226)
Это, конечно, опять разновидность A.(B), но прога моя все равно не пойдет, теперь проблема в другом.
Я вот теперь как подумываю организовать.
Если имеем ну например такие длины периодов:
0.(x) //1
0.(yyyyyyy) //7
0.00(eeeeeee) //7 //+ 2 =9
Нам их нужно сложить. Правда ли, что период не превысит max число символов до конца первого периода(9)? В данном случае, второй период начнется с 10 знака после запятой?

Re: ТроичнаяСС-->ДесятичнаяСС

Добавлено: 07 янв 2008, 23:45
somewhere
&quot писал(а):Ну тут же тоже можно сделать 0.(3) + 0.00(411522633744855967078189300) = .(3) + 0.(004115226337448559670781893) = 0.(337448559670781893004115226)
Не согласен, почему ты включил в период то, что им не является и не повторяется потом? Например первые две тройки? Это просто совпадение, что они там, в другой дроби все подругому будет. Твой шаг должен быть обоснован в данном случае.
&quot писал(а):Нам их нужно сложить. Правда ли, что период не превысит max число символов до конца первого периода(9)? В данном случае, второй период начнется с 10 знака после запятой?
Тоже не факт, может и не превысит - доказывать надо. Ты лучше скажи какова твоя задача в конечном счете, может ты напрасно бьешся?

Re: ТроичнаяСС-->ДесятичнаяСС

Добавлено: 08 янв 2008, 00:20
Monopo
Просто тупо раскрыл
0.33(744855967078189300411522633) =
0.33 744855967078189300411522633 744855967078189300411522633 744855967078189300411522633...

Re: ТроичнаяСС-->ДесятичнаяСС

Добавлено: 08 янв 2008, 00:26
Monopo
Моя адача составить алгоритм перевода строки троичных цифр в равное ей десятичное число.
Самое подходящее, чем я сейчас владею, это то, что я могу получить десятичное число с любым нужным мне количеством знаков после запятой. И теперь мне нужно придумать универсальный алгоритм по выискиванию периода среди этих знаков и красивому выводу его на экран, то есть в виде А.В(С).

Re: ТроичнаяСС-->ДесятичнаяСС

Добавлено: 08 янв 2008, 00:29
Monopo
Как было доказано выше выискивание повторяющихся знаков в строке отпадает.
Пробовл составить алгоритм типа найти два повторяющихся числа и сравнить числа после первого и после второго, если соответственно равны, то период найден. Но это тоже не для всех случаев.