ФорумПрограммированиеPython → floor(log(1000, 10)) == 2

floor(log(1000, 10)) == 2

  • master

    Сообщения: 3236 Репутация: N Группа: Джедаи

    Spritz 14 мая 2015 г. 8:09

    Python 3.4.0 (default, Apr 11 2014, 13:05:11) 
    [GCC 4.8.2] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from math import log,floor
    >>> print(floor(log(1000,10)));
    2
    

    нормально?

    не всё полезно, что в swap полезло
  • Sinkler

    Сообщения: 7931 Репутация: N Группа: в ухо

    Spritz 14 мая 2015 г. 8:13, спустя 3 минуты 29 секунд

    так floor же округляет в меньшую сторону, 2.9 => 2

  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 14 мая 2015 г. 8:14, спустя 1 минуту 54 секунды

    так floor же округляет в меньшую сторону, 2.9 => 2

    @Sinkler, +1

    adw/0
  • master

    Сообщения: 3236 Репутация: N Группа: Джедаи

    Spritz 14 мая 2015 г. 8:20, спустя 5 минут 38 секунд

    @Sinkler, ничего, что log(1000, 10) - равно ровно трём?

    не всё полезно, что в swap полезло
  • Sinkler

    Сообщения: 7931 Репутация: N Группа: в ухо

    Spritz 14 мая 2015 г. 8:24, спустя 4 минуты 9 секунд

    питон честно отвечает, что он считает это равным 2.9

    [[email protected] ~]$ python
    Python 2.7.6 (default, Sep  9 2014, 15:04:36) 
    [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from math import log
    >>> log(1000, 10)
    2.9999999999999996
    

    Спустя 59 сек.

    в отличие от пхп, который показывает 3

    Спустя 40 сек.

    это больше фундаментальная проблема компьютерных вычислений, чем косяк языков

    Спустя 58 сек.

    в какой-то книге про питон, вроде даже у лутца, был пример такого и рассуждения

  • master

    Сообщения: 3236 Репутация: N Группа: Джедаи

    Spritz 14 мая 2015 г. 9:04, спустя 39 минут 55 секунд

    @Sinkler, если это проблема компьютерных вычислений, то почему в Ruby и Go этой проблемы нет?

    $ irb
        2.2.2 :001 > Math.log10(1000)
         => 3.0 
        2.2.2 :002 > Math.log10(1000).floor
         => 3
    
    не всё полезно, что в swap полезло
  • Sinkler

    Сообщения: 7931 Репутация: N Группа: в ухо

    Spritz 14 мая 2015 г. 9:13, спустя 9 минут 5 секунд

    9.2. math — Mathematical functions — Python 2.7.10 documentation [docs.python.org]#math.log10

    math.log10(x)
    Return the base-10 logarithm of x. This is usually more accurate than log(x, 10).

    [[email protected] Shared]$ python
    Python 2.7.6 (default, Sep  9 2014, 15:04:36) 
    [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from math import log10
    >>> log10(1000)
    3.0
    

    Спустя 85 сек.

    руби и го хипстерские, у них сразу всё из коробки)

  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 14 мая 2015 г. 9:24, спустя 10 минут 41 секунду

    потому что руби гавно

    Спустя 8 сек.

    :D

    Сапожник без сапог
  • master

    Сообщения: 3236 Репутация: N Группа: Джедаи

    Spritz 14 мая 2015 г. 9:41, спустя 17 минут 14 секунд

    @phpdude, ага, молодой язык, не успел ещё костылями обрасти ЖD

    не всё полезно, что в swap полезло
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 14 мая 2015 г. 9:48, спустя 6 минут 48 секунд

    @master, ну почему костыли. Полагаю что твой пример - как раз и есть костыль. Так как не вычисляется методами ЭВМ. Методами ЭВМ он вычисляется до уровня float.

    Может позже если будет интересно напомню себе что такое логарифм, сейчас не помню :))

    Сапожник без сапог
  • master

    Сообщения: 3236 Репутация: N Группа: Джедаи

    Spritz 14 мая 2015 г. 9:55, спустя 7 минут 7 секунд

    @phpdude, ruby Math.log10(1000) возвращает 3.0, а это float

    Спустя 58 сек.

    @phpdude, логарифм - это то, что уравнивает мента с собакой: оба его найти не смогут

    не всё полезно, что в swap полезло
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 14 мая 2015 г. 14:52, спустя 4 часа 56 минут 36 секунд

    @phpdude, логарифм - это то, что уравнивает мента с собакой: оба его найти не смогут

    @master, это частный случай, в реальности их многое уравнивает

    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!