Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помощь с математикой:)

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
UNTRUSTED
Отправлено: 16 Апреля, 2012 - 14:11:43
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Март 2012  


Помог: 2 раз(а)




Незнаю как правильно объяснить, но попробую!
Допустим мы переводим из 20-ричного основания в 10-ричное, это, просто.. Но есть одно но: 3-й разряд не 20-ричный, а 18-ричный! Как реализовать? Все перепробовал, не получаетьсяНедовольство, огорчение
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $number = //от '1'(1) до '1 0 5551111' показывает правильно, а вот '1 1 0' уже показывает не 380, а 378
  3. $arr = explode(' ',$number);//через пробелы делим на разряды
  4. $i = count($arr)-1;//количество разрядов -1
  5. for($d=1,$dec=0;$i>=0;$i--)
  6. {
  7.   for($sym=0,$k=$arr[$i],$n=strlen($number);$sym<$n;$sym++)
  8.   {
  9.     $char = $k[$sym];//выбираем каждое число из данного разряда
  10.     $dec += ($char*$d); //и прибавляем его, умножая на основание разряда
  11.   }
  12.   if($i==2) //третий разряд
  13.   {
  14.     $d*=18; //если то умножаем на 18
  15.   }else{
  16.     $d*=20;  //во всех остальных случаях на 20
  17.   }
  18. }
  19. ?>

Вот что то вроде этого Улыбка
(Добавление)
ну и соответственно разряды записываються через пробел, а остальные - непозиционные, и просто складываються между собой!
 
 Top
EuGen Администратор
Отправлено: 16 Апреля, 2012 - 14:33:02
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




UNTRUSTED
Поясните, как может быть так, что какой-либо разряд есть в 18-ричной системе, а число - в 20-ричной? Это лишено смысла.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
DelphinPRO
Отправлено: 16 Апреля, 2012 - 14:34:08
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)





у UNTRUSTED все задачки мутные Улыбка


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
UNTRUSTED
Отправлено: 16 Апреля, 2012 - 14:45:30
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Март 2012  


Помог: 2 раз(а)




EuGen пишет:
как может быть так, что какой-либо разряд есть в 18-ричной системе, а число - в 20-ричной

Нет, число не в 20-ричной,
оно вот так:
от 1 до 19 записывается непозиционно вот так:
CODE (htmlphp):
скопировать код в буфер обмена
  1. 1
  2. 11
  3. 111
  4. 1111
  5. 5
  6. 51
  7. 511
  8. 5111
  9. 51111
  10. 55
  11. 551
  12. 5511
  13. 55111
  14. 551111
  15. 555
  16. 5551
  17. 55511
  18. 555111
  19. 5551111
  20. //а двацдать записываеться вот так - 1 0, потом опять:
  21. 1 1
  22. 1 11
  23. 1 111
  24. 1 1111
  25. 1 5
  26. 1 51
  27. ...
  28. ...
  29. 55511 5551111 //359 (5*20*3)+(1*20*2)+(5*1*3)+(1*1*4), максимальное во втором разряде потом идет
  30. 1 0 0 // (1*20*18)=360
  31. 1 0 1
  32. //и остальные разряды 20-ричные опять


DelphinPRO пишет:
у UNTRUSTED все задачки мутные

Легких путей не ищемУлыбка

(Добавление)
В первом разряде 20 знаков вместе с нулём, наибольшая цифра - 19. Вес первого разряда равен 1. Это разряд единиц.
Во втором разряде 18 разрядов вместе с нулём, наибольшая цифра 17. Вес второго разряда равен 20. Это разряд двадцаток.
В третьем разряде опять 20 знаков вместе с нулём, наибольшая цифра 19, но "вес" цифры равен 360 (18*20), а не 400, как было бы в правильной 20-иричной системе.

(Отредактировано автором: 16 Апреля, 2012 - 14:50:13)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB