Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Остаток от деления 
:(
    Опции темы
Albinos_x
Дата 18.2.2006, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



сейчас попробую опытным путём проверить....


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Mayk
Дата 18.2.2006, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: нет
Всего: 134



Цитата(Albinos_x @ 18.2.2006, 20:25 Найти цитируемый пост)
сейчас попробую опытным путём проверить....

а подробнее?

зы. ставлю на 1003. уже есть два результат в 1003.


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Albinos_x
Дата 18.2.2006, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Цитата(Mayk @ 18.2.2006, 16:32 Найти цитируемый пост)
а подробнее?

да вот вроде алгоритм ещё один надумал выполняется долго, но зато (вроде) точно можно узнать ответ...
в ручную слишком долго считать...
Добавлено @ 17:46
пока алгорит дошёл до 15 значного числа...


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Albinos_x
Дата 18.2.2006, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



первый мой алгорит полностью не верен, т.к. получается что я находил модуль от 100175,779247994 что в корне не верно, тот алгоритм который дошёл до 15 разрядного числа до сих пор считает, поэтому я его немного усовершенствовал.... вот какой получился результат результат:
Цитата

время работы                                              : 54,8290000297129 sec
количество итераций                                  : 85310
модуль числа                                                : 1645
количество изменений коэф. домнажения : 3662


функция:
Код

procedure TForm1.Button1Click(Sender: TObject);
var e,ee:Extended;
    n,nn:Extended;
    ll,li:Extended;
    s:string;
    t:TDateTime;
    I,ii:Int64;
begin
e := 1.00175779247994E+3664;
n := 3239;
ee:=e;
i:=0;ii:=0;
t:=now;
li:=0;
s:=floattostr(ee);
while (ee>(n)) do
   begin
   s:=floattostr(ee);
   if pos('E',s)>0 then
      begin
       s:=copy(s,pos('E',s)+1,length(s));
       ll:=strtofloat(s)-(length(inttostr(trunc(n))));
       end
       else
       begin
       ll:=length(s)-1-(length(inttostr(trunc(n))));
       end;
   if ll>0 then
      nn:=n*(power(10,(ll)))
      else
      nn:=n;
   if li<>ll then ii:=ii+1;
   li:=ll;
   ee:=ee-nn;
   i:=i+1;
   // äîìíàæåíèå íà 10
   Edit2.Text:=floattostr(ll);
   // ïðîìåæóòî÷íûå çíà÷åíèÿ è êîíå÷íîå
   Edit1.Text:=floattostr(ee);
   // èòåðàöèè
   Edit3.Text:=inttostr(i);
   // êîëè÷åñòâî èçìåíåíèé êîýô äîìíàæåíèå íà 10
   Edit5.Text:=inttostr(ii);
   Application.ProcessMessages;
   end;
t:=now-t;
ll:=t/EncodeTime(0,0,1,0);
Edit4.Text:=floattostr(ll)+' sec';
end;

ЗЫ:
Цитата(Mayk @ 18.2.2006, 16:32 Найти цитируемый пост)
зы. ставлю на 1003. уже есть два результат в 1003.

Цитата(Albinos_x @ 18.2.2006, 16:08 Найти цитируемый пост)
виндовский калькулятор говорит

ошибся он тоже говорит 1003...
так что я пока в раздумьях...
ЗЫЫ: Mayk твой алгоритм дает 275....


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Albinos_x
Дата 18.2.2006, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



на большёе время работы не обращайте внимания... просто у меня ещё 2 процесса висели, которые процессор под 100 % загрузили...


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Fin
Дата 18.2.2006, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


Профиль
Группа: Участник
Сообщений: 687
Регистрация: 4.1.2006

Репутация: нет
Всего: 10



Что то мы совсем забыли школьный курс математики за 2 класс. А в частности деление столбиком smile
Вот программа, которая не просто выдает результат, но и также все число целиком.
Код

#include <iostream.h>

int Num[15]={1,0,0,1,7,5,7,7,9,2,4,7,9,9,4};

int GetNum(int index)
{
 if ((index>=0) && (index<15)) return Num[index];
 else return 0;
}

int main()
{
    int x =    0;
    int y = 3239;
    int fl=0;
    int i=0;
    while (i<=3664)
    {
        if (x<y) 
        {
            x *=10;
            x +=GetNum(i++);
            switch (fl) {
            case 0:
                break;
            case 1:
                fl=2; 
                break;
            case 2:
                cout << '0';
                break;
            }
        }
        else
        {
            fl=1;
            cout << x/y;
            x %=y;
        }

    }
    if (x>y) 
    {
        cout <<x/y;
        x %=y;
    }
    cout << endl << "Ostatok :"<<x <<endl;
    return 0;
}


Это результат, которая выдала программа:
Цитата

30927996062980549552330966347638159925903056498919419573942574868786662550169805
49552330966347638159925903056498919419573942574868786662550169805495523309663476
38159925903056498919419573942574868786662550169805495523309663476381599259030564
98919419573942574868786662550169805495523309663476381599259030564989194195739425
74868786662550169805495523309663476381599259030564989194195739425748687866625501
69805495523309663476381599259030564989194195739425748687866625501698054955233096
63476381599259030564989194195739425748687866625501698054955233096634763815992590
30564989194195739425748687866625501698054955233096634763815992590305649891941957
39425748687866625501698054955233096634763815992590305649891941957394257486878666
25501698054955233096634763815992590305649891941957394257486878666255016980549552
33096634763815992590305649891941957394257486878666255016980549552330966347638159
92590305649891941957394257486878666255016980549552330966347638159925903056498919
41957394257486878666255016980549552330966347638159925903056498919419573942574868
78666255016980549552330966347638159925903056498919419573942574868786662550169805
49552330966347638159925903056498919419573942574868786662550169805495523309663476
38159925903056498919419573942574868786662550169805495523309663476381599259030564
98919419573942574868786662550169805495523309663476381599259030564989194195739425
74868786662550169805495523309663476381599259030564989194195739425748687866625501
69805495523309663476381599259030564989194195739425748687866625501698054955233096
63476381599259030564989194195739425748687866625501698054955233096634763815992590
30564989194195739425748687866625501698054955233096634763815992590305649891941957
39425748687866625501698054955233096634763815992590305649891941957394257486878666
25501698054955233096634763815992590305649891941957394257486878666255016980549552
33096634763815992590305649891941957394257486878666255016980549552330966347638159
92590305649891941957394257486878666255016980549552330966347638159925903056498919
41957394257486878666255016980549552330966347638159925903056498919419573942574868
78666255016980549552330966347638159925903056498919419573942574868786662550169805
49552330966347638159925903056498919419573942574868786662550169805495523309663476
38159925903056498919419573942574868786662550169805495523309663476381599259030564
98919419573942574868786662550169805495523309663476381599259030564989194195739425
74868786662550169805495523309663476381599259030564989194195739425748687866625501
69805495523309663476381599259030564989194195739425748687866625501698054955233096
63476381599259030564989194195739425748687866625501698054955233096634763815992590
30564989194195739425748687866625501698054955233096634763815992590305649891941957
39425748687866625501698054955233096634763815992590305649891941957394257486878666
25501698054955233096634763815992590305649891941957394257486878666255016980549552
33096634763815992590305649891941957394257486878666255016980549552330966347638159
92590305649891941957394257486878666255016980549552330966347638159925903056498919
41957394257486878666255016980549552330966347638159925903056498919419573942574868
78666255016980549552330966347638159925903056498919419573942574868786662550169805
49552330966347638159925903056498919419573942574868786662550169805495523309663476
38159925903056498919419573942574868786662550169805495523309663476381599259030564
98919419573942574868786662550169805495523309663476381599259030564989194195739425
74868786662550169805495523309663476381599259030564989194195739425748687866625501
69805495523309663476381599259030564989194195739425748687866625501698054955233096
6347638159925903056498919419573942574868786662550169805495523
Ostatok :1003
Press any key to continue


Это сообщение отредактировал(а) Fin - 18.2.2006, 21:21


--------------------
Пролетал мимо.
PM MAIL   Вверх
Mayk
Дата 18.2.2006, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: нет
Всего: 134



Цитата(Albinos_x @ 18.2.2006, 23:39 Найти цитируемый пост)
Mayk твой алгоритм дает 275....

Мы с компиляторами слегка прозевали что исходное число слегка не поместится в extended.
Не паскалевский, не сишный компилеры не заворнингали об этом. smile
Мне потом заместо числа гнус поместил INF. А fmodl от этого безобразия вернула попросту NAN.

Если увеличить точность до сверхточных явовских BigDecimal'ов, то ответ таки получается 1003. Правда пока до него дойдёт... (изначальный делитель в результате был домножен где-то на 2**12160)

Цитата(Albinos_x @ 18.2.2006, 23:39 Найти цитируемый пост)

ошибся он тоже говорит 1003...

ура! 1003 из четырех разных источников.

Думаем ещё.
ps. веселая задачка для субботы


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Fin
Дата 18.2.2006, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


Профиль
Группа: Участник
Сообщений: 687
Регистрация: 4.1.2006

Репутация: нет
Всего: 10



Все правильно 1003. Я в своей последней программе одну степень не добирал. Шас там исправлю результат.


--------------------
Пролетал мимо.
PM MAIL   Вверх
Albinos_x
Дата 18.2.2006, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Цитата(Mayk @ 18.2.2006, 21:11 Найти цитируемый пост)
Думаем ещё.
ps. веселая задачка для субботы

угу...
Цитата(Fin @ 18.2.2006, 20:40 Найти цитируемый пост)
Что то мы совсем забыли школьный курс математики за 2 класс. А в частности деление столбиком

мой последний алгоритм по этому же принципу работает.....


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Fin
Дата 18.2.2006, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


Профиль
Группа: Участник
Сообщений: 687
Регистрация: 4.1.2006

Репутация: нет
Всего: 10



Albinos_x, Прогони свой алгоритм на таком числе
Делимое = 1,00175779247994E+14
Делитель = 3239
Результат должен быть
Целая часть = 30927996062
Остаток = 3176


--------------------
Пролетал мимо.
PM MAIL   Вверх
Albinos_x
Дата 18.2.2006, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Цитата

Целая часть = 30927996062
Остаток = 3176

угу так и получается:
Цитата

время работы                          : 0,0600001774728298 sec
количество итераций                  : 242
модуль числа                          : 3176
количество изменений коэф. домнажения : 12



--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Albinos_x
Дата 18.2.2006, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Цитата(Mayk @ 18.2.2006, 21:11 Найти цитируемый пост)
Мы с компиляторами слегка прозевали что исходное число слегка не поместится в extended.

да по идее должно помещаться....
вот что говорит справка делфи:
Цитата

Fundamental real types
Type  Range                                    Significant digits Size in bytes
Extended 3.6 x 10^-4951 .. 1.1 x 10^4932 19-20          10
...
Extendedoffers greater precision than other real types but is less portable. Be careful using Extended if you are creating data files to share across platforms.




--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Albinos_x
Дата 18.2.2006, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Цитата(Albinos_x @ 18.2.2006, 22:16 Найти цитируемый пост)
угу так и получается:

по алгоритму Mayk-а тоже этот же результат...


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Fin
Дата 19.2.2006, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


Профиль
Группа: Участник
Сообщений: 687
Регистрация: 4.1.2006

Репутация: нет
Всего: 10



Чтобы число 1.00175779247994E+3664 поместилось полностью в память нужно порядка 12172 бита или 1522 байт. Я не думаю, что в java отводят такое количество памяти под одно число. То что они пишут до 4932 степени, естественно идет обрезка большей части числа. Следовательно в данном случае результат подсчета будет не верен.


--------------------
Пролетал мимо.
PM MAIL   Вверх
Albinos_x
Дата 19.2.2006, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Цитата(Fin @ 19.2.2006, 16:35 Найти цитируемый пост)
Чтобы число 1.00175779247994E+3664 поместилось полностью в память нужно порядка 12172 бита или 1522 байт. Я не думаю, что в java отводят такое количество памяти под одно число. То что они пишут до 4932 степени, естественно идет обрезка большей части числа. Следовательно в данном случае результат подсчета будет не верен.

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


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0591 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.