14 14 по сравнению с. Российские танки в маркетинговой войне


«Акрон» по итогам 2017 года намерен увеличить показатель EBITDA на 14% к показателю, заложенному в плане на текущий год, сообщил журналистам председатель совета директоров, первый вице-президент «Акрона» Александр Попов.

«Мы ожидаем увеличения наших чистых денежных потоков в силу того, что цены на удобрения в последние несколько месяцев очень прилично выросли - в первую очередь, на азотные удобрения и аммиак. Мы видим, что уровень EBITDA у нас будет (в 2017 г.) значительно выше, чем мы закладывали в своей модели в начале этого года... К тем базовым показателям, которые есть в модели на 2017 г., у нас EBITDA предварительно увеличится на 14%», - сказал он.

При этом Попов не уточнил прогноз показателя в годовом исчислении, сославшись на коммерческую тайну.

Он добавил, что компания пересмотрит в сторону улучшения финансовую модель на 2018 год, так как цены на минеральные удобрения, по прогнозам, либо сохранятся на уровне текущих, либо немного увеличатся, учитывая сезонный фактор.

Топ-менеджер компании отметил, что соотношение чистый долг/EBITDA «Акрон» планирует держать на уровне до 2х.

«Мы анализируем инвестиционные стратегии наших конкурентов, и мы увидели, что в последние годы произошла смена парадигмы. И, если раньше большинство компаний действительно старались держать уровень долга на уровне 1-2х, то теперь многие ушли далеко за 3х, и это большая часть наших конкурентов - не только российских. И в такой ситуации мы понимаем, что, если не вкладывать сейчас серьезные деньги в расширение мощностей, развитие, то на следующем подъеме цикла наши конкуренты уйдут далеко вперед, а мы будем сидеть и радоваться, что у нас низкий уровень долга, а развития нет. Поэтому однозначно было принято решение: развитие - это основное, дальше дивиденды, а уровень долга идет как производная от первых двух вещей», - сказал Попов.

По его словам, компания не привязывается к показателю чистой прибыли в процессе принятия решения по выплате дивидендов. Ключевым здесь является свободный денежный поток, так как чистая прибыль по международным стандартам финансовой отчетности часто «не отображает реальный уровень текущего благополучия либо неблагополучия компании».

SPO в ближайших планах нет

Говоря о незначительном снижении free float «Акрона», Попов отметил, что увеличение казначейского пакета акций связано исключительно с желанием инвесторов. «Приходят инвесторы и предлагают нам выкупить собственные акции. Мы не сопротивляемся, выкупаем», - сообщил председатель совета директоров компании.

«Мы, конечно, видим запрос потенциальных инвесторов на увеличение free float, но говорить о том, что мы его сейчас будем увеличивать и делать SPO, я бы сейчас не стал, потому что мы все-таки, должны осуществить наш очередной раунд инвестиционной экспансии и вернуться к этому вопросу через несколько лет», - сказал Попов.

По его словам, компания сейчас не нуждается в привлечении дополнительного внешнего финансирования, используя собственные средства, кредиты и облигации.

«Цены восстанавливаются. Но (перед выходом на SPO - прим. ред.) мы должны убедиться, что это долгоиграющая история, а не всплеск и реакция рынка на то, что с него ушли китайские неэффективные производители и частично Украина. В любом случае, когда я говорил (о возможном выходе на SPO после восстановления цен - прим. ред.), мы исходили из того, что мы заканчиваем нашу большую инвестпрограмму и сосредоточиваемся на каких-то других вещах. Закончив нашу 10-летнюю инвестпрограмму, мы пришли к тому, что это был лишь первый раунд нашей еще большей инвестпрограммы, и в конце прошлого года приняли программу развития до 2025 г. Поэтому здесь только уровень цен на продукцию не является определяющим», - добавил топ-менеджер.

О компании

«Акрон» - вертикально интегрированная компания по выпуску минеральных удобрений. Включает в себя производителей удобрений и продуктов оргсинтеза - «Акрон» и «Дорогобуж», добывающий актив «Северо-западная фосфорная компания». «Акрон» также планирует реализовать проект по разработке Талицкого калийного месторождения в Пермском крае.

Основным бенефициаром компании является Вячеслав Кантор, который контролирует 85,46% «Акрона», 10,45% компании находятся в распоряжении Национального расчетного депозитария. Акции «Акрона» котируются на Московской бирже и LSE.

3 ответов

После компиляции с оптимизацией все еще есть несколько отличий от программы C

  • вы используете div , в то время как программа C использует разделение машины (которое усекает) [но любой уважающий себя компилятор C преобразует это в сдвиг, что делает его еще быстрее], это будет quot в Haskell; что сократило время работы примерно на 15%.
  • программа C использует 64-битную (или даже 32-разрядную) с фиксированной шириной, но тогда просто удача, что она получает правильный ответ, поскольку некоторые промежуточные значения превосходят 32-битные диапазоны), программа Haskell использует произвольную точность Integer s. Если в вашем GHC (64-разрядная ОС, отличная от Windows) есть 64-разрядный Int , замените Integer на Int . Это сократило время работы примерно в 3 раза. Если вы используете 32-битную систему, вам не повезло, GHC не использует собственные 64-битные инструкции там, эти операции реализованы как C-вызовы, которые все еще довольно медленные.

Для memoisation вы можете передать его в один из пакетов memoisation для хакаса, единственный, который я помню, data-memocombinators , но есть и другие. Или вы можете сделать это самостоятельно, например, сохранить карту ранее рассчитанных значений - это будет лучше всего работать в монаде State ,

Import Control.Monad.State.Strict import qualified Data.Map as Map import Data.Map (Map, singleton) type Memo = Map Integer Int syr:: Integer -> State Memo Int syr n = do mb <- gets (Map.lookup n) case mb of Just l -> return l Nothing -> do let m = if even n then n `quot` 2 else 3*n+1 l <- syr m let l" = l+1 modify (Map.insert n l") return l" solve:: Integer -> Int -> Integer -> State Memo (Integer,Int) solve maxi len start | len > 1000000 = return (maxi,len) | otherwise = do l <- syr start if len < l then solve start l (start+1) else solve maxi len (start+1) p14:: (Integer,Int) p14 = evalState (solve 0 0 500000) (singleton 1 1)

но это, вероятно, не будет слишком большим (даже если вы добавили необходимую строгость). Проблема в том, что поиск в Map не слишком дешев, а вставка относительно дорога.

Другой метод - сохранить измененный массив для поиска. Код становится более сложным, так как вам нужно выбрать разумную верхнюю границу для кеширования значений (должно быть не намного больше, чем оценка для начальных значений) и иметь дело с частями последовательностей, выходящих за пределы памяти. Но поиск и запись массива бывают быстрыми. Если у вас есть 64-разрядный Int s, приведенный ниже код работает довольно быстро, здесь он принимает 0.03s для лимита в 1 миллион и 0,33 для лимита в 10 миллионов, соответствующего (насколько я мог бы разумно) Код C работает в 0,018 или 0.2s.

Module Main (main) where import System.Environment (getArgs) import Data.Array.ST import Data.Array.Base import Control.Monad.ST import Data.Bits import Data.Int main:: IO () main = do args <- getArgs let bd = case args of a:_ -> read a _ -> 100000 print $ collMax bd next:: Int -> Int next n | n .&. 1 == 0 = n `unsafeShiftR` 1 | otherwise = 3*n + 1 collMax:: Int -> (Int,Int16) collMax upper = runST $ do arr <- newArray (0,upper) 0:: ST s (STUArray s Int Int16) let go l m | upper < m = go (l+1) $ next m | otherwise = do l" <- unsafeRead arr m case l" of 0 -> do l"" <- go 1 $ next m unsafeWrite arr m (l"" + 1) return (l+l"") _ -> return (l+l"-1) collect mi ml i | upper < i = return (mi, ml) | otherwise = do l <- go 1 i if l > ml then collect i l (i+1) else collect mi ml (i+1) unsafeWrite arr 1 1 collect 1 1 2

Ну, программа C использует unsigned long , но Integer может хранить произвольно большие целые числа (это bignum). Если вы импортируете Data.Word , вы можете использовать Word , который является целым числом без знака машинного слова.

После замены Integer на Word и используя ghc -O2 и gcc -O3 , программа C запускается через 0,72 секунды, а программы Haskell - за 1,92 секунды. 2.6x неплохо. Однако ghc -O2 не всегда помогает, и это одна из программ, на которых это не так! Используя только -O , как и вы, время выполнения сокращается до 1,90 секунд.

Я попытался заменить div на quot (который использует тот же тип деления, что и C, они отличаются только от отрицательных входов), но, как ни странно, это фактически запустило программу Haskell для меня немного медленнее.

Вы можете ускорить функцию syr с помощью этого предыдущего вопроса о переполнении стека Я ответил о той же проблеме Project Euler.

В моей текущей системе (32-разрядный Core2Duo) ваш код Haskell, включая все оптимизации, указанные в ответах, принимает 0.8s для компиляции и 1.2s для запуска.

Вы можете передать время выполнения во время компиляции и сократить время выполнения до нуля.

Module Euler14 where import Data.Word import Language.Haskell.TH terms:: Word -> Word terms n = countTerms n 0 where countTerms 1 acc = acc + 1 countTerms n acc | even n = countTerms (n `div` 2) (acc + 1) | otherwise = countTerms (3 * n + 1) (acc + 1) longestT:: Word -> Word -> (Word, Word) longestT mi mx = find mi mx (0, 0) where find mi mx (ct,cn) | mi == mx = if ct > terms mi then (ct,cn) else (terms mi, mi) | otherwise = find (mi + 1) mx (if ct > terms mi then (ct,cn) else (terms mi, mi)) longest:: Word -> Word -> ExpQ longest mi mx = return $ TupE where (a,b) = longestT mi mx

{-# LANGUAGE TemplateHaskell #-} import Euler14 main = print $(longest 500000 999999)

В моей системе для компиляции требуется 2.3s , но время выполнения сокращается до 0.003s . Выполнение функции времени компиляции (CTFE) - это то, что вы не можете сделать в C/С++. Единственным другим языком программирования, который я знаю о поддержке CTFE, является D язык программирования . И чтобы быть полным, код C принимает 0.1s для компиляции и 0.7s для запуска.

Миграционный прирост населения России за январь-июль 2014 года снизился на 14% по сравнению с тем же периодом 2013 года

В современном мире роль миграции в изменении численности и состава населения отдельных стран и регионов мира существенно возросла. Особенно велико ее значение в условиях естественной убыли населения (она наблюдалась в России в 1992-2012 годах) или незначительного естественного прироста, близкого к нулевому уровню (характерно для большинства развитых стран). По данным годовой разработки за 2013 год, миграционный прирост значительно усилил небольшой естественный прирост населения России (24 тысячи человек), обеспечив 92,5% общего прироста численности населения страны. По сравнению с 2012 годом, величина миграционного прироста изменилась мало, составив около 296 тысяч человек (на 0,3% больше). По данным оперативного помесячного учета, опубликованным Федеральной службой государственной статистики (Росстатом), миграционный прирост в январе-июне 2014 года полностью компенсировал потери населения России в результате естественной убыли, превысив ее более чем в 4 раза (+116,7 против -28,6 тысячи человек), а в январе-июле - более чем в 29 раз (+145,7 против -5,0 тысячи человек) .

Численность населения России увеличивается за счет миграционного обмена с другими странами начиная с 1975 года (тогда в основном с союзными республиками единого государства). В предшествующие этому периоду 30 лет Россия, напротив, теряла население в миграционном обмене с союзными республиками. В первой половине 1990-х годов сальдо международной миграции резко увеличилось, достигнув наибольшей величины в середине десятилетия (845,7 тысячи человек, или 5,7‰ в 1994 году), однако впоследствии сложилась устойчивая тенденция быстрого сокращения миграционной активности, а в результате - и миграционного прироста (рис. 1).

Следует иметь в виду, что в данном случае речь идет о регистрируемой миграции , а ее объем во многом зависит от правил и практики регистрации, которые меняются со временем .

Кроме того, Росстат дважды увеличивал оценки миграционного прироста в процессе корректировки численности населения страны по итогам Всероссийских переписей населения 2002 и 2010 годов , оказавшимися более высокими, чем оценивалось по данным текущего учета (причиной считался недоучет миграции).

С целью более полного учета миграции правила учета в очередной раз изменились в 2011 году - в статистический учет долгосрочной миграции населения стали включать лиц, зарегистрированных по месту пребывания на срок 9 месяцев и более (ранее – на 1 год и более). При этом в 2011 году из общего числа прибывших (выбывших) выделялись мигранты, зарегистрированные (снявшиеся с регистрационного учета) по месту жительства (то есть публиковались два ряда данных, один из которых вполне сопоставим с данными предшествующих лет). В дальнейшем данные о регистрации по месту жительства уже не выделялись .

Изменение критериев долговременной миграции привело к значительному увеличению, прежде всего, числа прибывающих и чистой миграции, интенсивность которой в 2011 году (2,2‰) превысила значение коэффициента миграционного прироста на протяжении предшествующего десятилетия (начиная с 2001 года). В 2012 году из-за введенных изменений в большей степени увеличилось число учтенных выбытий.

За 2012 год в Россию на постоянное место жительства или на пребывание сроком 9 месяцев и более прибыло из других стран 417,7 тысячи человек, что на 61,1 тысячи человек (на 17,2%) больше, чем было зарегистрировано в предшествующем 2011 году. Одновременно еще в большей мере увеличилось число выбывших за пределы России - до 122,8 тысячи человек, на 86,3 тысячи человек (в 2,4 раза) больше, чем за 2011 год. Это напрямую связано с изменением порядка учета долгосрочной миграции, поскольку в число выбывших автоматически попадают мигранты, срок пребывания которых закончился.

В результате миграционный прирост (чистая или нетто-миграция) населения России за 2012 года составил 294,9 тысячи человек, или 2,1‰. По сравнению с 2011 годом (320,1 тысячи человек, или 2,2‰) он снизился на 25,2 тысячи человек, или на 7,9%.

За 2013 год в Россию прибыло на 15,5% иммигрантов больше (482,2 тысячи человек), чем в 2012 году, но одновременно еще больше увеличилось число выбывших из России – на 51,8% (186,4 тысячи человек). В итоге миграционный прирост мало изменился по сравнению с 2012 годом, составив 295,9 тысячи человек, или 20,6 в расчете на 10 тысяч человек, как и в 2012 году.

В январе-июле 2014 года число прибывавших в Россию из других стран (без учета сведений по Крымскому федеральному округу) продолжало увеличиваться, составив 307,6 тысячи человек, что на 45,7 тысячи человек (на 17,4%) больше, чем за тот же период 2013 года. Вместе с тем увеличилось, причем в большей степени, и число выбывших за пределы России: оно превысило 169 тысяч человек, что на 69,1 тысячи человек, или в 1,7 раза больше, чем за январь-июль 2013 года.

В результате миграционный прирост (чистая или нетто-миграция) населения России за январь-июль 2014 года составил 138,4 тысячи человек, или 1,7‰ в пересчете на год. Это на 23,5 тысячи человек, или на 14,5% меньше, чем за тот же период 2013 года (1,9‰). Отметим, что в январе-июле 2011 года миграционный прирост, по новым правилам учета долгосрочной миграции, был почти на 20% выше (172,9 тысячи человек, или 2,1‰), а в январе-июле 2012 года – на 17% выше (167,1 тысячи человек, или 2,0‰). Таким образом, миграционный прирост, резко увеличившийся после изменения правил миграционного учета в 2011 году, снижается на фоне роста зарегистрированных прибытий и выбытий.

Рисунок 1. Число прибывших в Россию и выбывших из нее (тысяч человек) и миграционный прирост (на 10 тысяч человек населения), 1980-2014* годы

* за 2011 год приведены данные по прежним (2011) и новым (2011н) правилам учета;
2014 год – оценка по данным за январь-июль в пересчете на год без учета сведений по Крымскому федеральному округу.

С учетом сведений по Крымскому федеральному округу миграционный прирост населения России за январь-июль 2014 года снизился на 12,7% по сравнению с тем периодом 2013 года (145,7 против 167,0 тысячи человек, или 1,7‰ против 2,0‰).

В данных годовой разработки Росстат приводит распределение учтенных мигрантов по видам и срокам регистрации .

Увеличение числа зарегистрированных мигрантов (с 3415 тысяч прибывших в 2011 году до 4497 тысяч прибывших в 2013 году и с 3095 до 4201 тысяч выбывших, соответственно в те же годы) происходило в большей степени за счет регистрации по месту пребывания (рис. 2-3).

Миграционный прирост населения России в большей мере формируется за счет мигрантов, учитываемых по месту пребывания: в 2011 году - на две трети (217 тысяч человек, или 67,9%), в 2012 году – почти полностью (290 тысяч человек, или 98,2%), а в 2013 году и январе-июле 2014 года он превышал общий миграционный прирост.

Мигранты, учитываемые при регистрации по месту жительства, обеспечивают чуть более трети миграционного прироста (33,4% в 2011 году, 34,6% в 2012 году, 36,5% в 2013 году, а по данным за январь-июль 2014 года – 45,9%). В абсолютном выражении миграционный прирост за счет прибывших и выбывших, учтенных по месту жительства, составил 107 тысяч человек в 2011 году, 102 тысячи человек в 2012 году, 108 тысяч человек в 2013 году и 64 тысячи человек за январь-июль 2014 года.

Автоматическое снятие с регистрационного учета после окончания срока пребывания (возвращение к месту жительства после временного пребывания на другой территории) привело первоначально к незначительной миграционной убыли - 4 тысячи человек, или -1,3% в 2011 году. Однако уже в 2012 году она достигла существенной величины (-97 тысячи человек) и продолжала возрастать в 2013 году (-162 тысячи человек) и в январе-июле 2014 года (-157 тысячи человек).

Рисунок 2. Распределение мигрантов России по видам регистрации, 2011-2014* годы, тысяч человек

Среди мигрантов, учтенных по месту пребывания, увеличивается доля лиц со сроком пребывания от 9 месяцев до года, - с 17,9% в 2011 году до 22,0% в 2013 году по прибывшим, с 15,9% до 17,2%, соответственно, по выбывшим. Их вклад в миграционный прирост (по месту пребывания) увеличился с 27% до 39%.

Больше всего среди мигрантов, учтенных по месту пребывания, доля лиц со сроком пребывания от 1 года до 2 лет, но она немного снизилась. Если в 2011 году она составляла 32% среди прибывших и 34% среди выбывших, то в 2012-2013 годах, соответственно, 29% и 31%. Вклад в миграционный прирост (по месту пребывания) снизился с 23% до 19%.

Несколько ниже доли мигрантов со сроком пребывания от 2 до 3 лет, однако в миграционный прирост они вносят более весомый, хотя и снижающийся вклад (31% в 2011 году, 26% в 2013 году).

Рисунок 3. Распределение мигрантов России по видам регистрации и срокам пребывания, 2011-2014* годы, %

* 2014 год – оценка по данным за январь-июль в пересчете на год без учета сведений по Крымскому федеральному округу