Pazarlama savaşında Rus tankları. Pazarlama savaşında Rus tankları 14 14 vs.

  • 05.11.2019

Bloomberg iki hafta önce, "Başkan Vladimir Putin'in önderliğinde Rus ordusu daha profesyonel hale geldi ve tankerlerin hayatını kurtarmak bir öncelik haline geldi." Rus "Armata" tankının tasarım özelliklerine övgüde bulunan yayın, şu anda fiyatlara ve ihracat potansiyeline hala daha fazla önem veriyor. Rus T-14'ü, Ukraynalı Oplot BM'yi ve Kore K2 Black'i inceleyen makale, "Seçenek son derece sınırlı: Batı tankları yoğun şekilde modifiye edilmiş ve en son elektroniklerle donatılmış olsa da, temel modeller onlarca yıllık" diyor. Panther ve Çinli VT –4 Norinco şirketleri.

Pazarlama savaşında Rus tankları

Yeni Rus süper tankı T-14 "Armata", dünya pazarındaki iki sanal rakibe karşı ilk kez savaşın tadına varıyor: Çin VT-4 ve Ukraynalı BM "Oplot".

"Armata" tankı

Nükleer silahların ve diğer kitle imha silahlarının kullanımı koşullarında ana çok amaçlı savaş silahı olarak tank ve motorlu tüfek birimlerinin bir parçası olarak herhangi bir düşmana karşı manevra kabiliyetine sahip savaş operasyonları yürütmek için tasarlanmıştır.

Rusya'nın 15.000'den fazla tankı var, diğer tüm ülkelerden daha fazla, ancak bunların büyük çoğunluğu eski T-72'ler ve T-80'ler. Bu tankların doğu Ukrayna'daki isyancılara sağlandığı görülüyor, özellikle de Rusya onları çok fazla kullanmadığı için. Diğer sorunların yanı sıra ölüm tuzaklarıdır: insanlı bir kuleye doğrudan isabet, mühimmatın patlamasına ve mürettebatın ölmesine neden olur. Bu nedenle, personel kaybına aldırış etmeyen Sovyet Ordusunun çok fazlasına ihtiyacı vardı.

Devlet Başkanı Vladimir Putin liderliğinde Rus ordusu daha profesyonel hale geldi ve tankerlerin hayatlarını kurtarmak bir öncelik haline geldi. Geçen ay Kızıl Meydan'daki bir geçit töreninden önce tanıtılan Armata, tasarım özellikleri sunuyor: ıssız bir taret ve bir tank gövdesinde bir mürettebat bölmesi. ABD Dış Askeri Araştırmalar Ofisi'nin yakın tarihli bir raporunda T-14, "Önceki Sovyet/Rus araçlarının aksine, mürettebat güvenliği (hayatta kalma) ve konfor önemlidir" dedi.

Amerikan M1 Abrams, British Challenger, Fransız Leclerc ve Alman Leopard 2 gibi Batılı tanklarla karşılaştırıldığında, T-14 bir uzay gemisidir. O kadar karmaşık ki Rus tank ekipleri onu kullanmakta zorlanıyor. Zafer Geçit Töreni için bir prova sırasında, Armata Kızıl Meydan'da durdu ve tankı üreten şirket olan NPK Uralvagonzavod'dan daha deneyimli bir sürücü gelip onu sürmeye zorlayana kadar hareket edemedi.

Çinli VT-4 tank üreticisi Norinco kısa süre önce bu bölümü araçlarını tanıtmak için kullandı. Mesajlaşma servisi WeChat'teki bir gönderide, "9 Mayıs'tan önce geçit töreninin provası sırasında meydana gelen bir arızada gördüğümüz gibi, T-14'ün iletimi az gelişmiş. VT-4 bu tür sorunlar yaşamadı, bu yüzden Irak."

VT-4 tankı, Rus T-14 Armata'ya alternatif olarak konumlandırılmıştır. Norinco, tankının otomasyon, hareketlilik, atış kontrol sistemi ve maliyet açısından T-14'ten daha iyi olduğundan emin.

Fotoğraf: Hu Yongye / China Daily.

Norinco'nun gönderisine göre, "Uluslararası bir müşteri yeni bir tank satın almak isterse, yalnızca Çin ve Rusya arasında seçim yapabilir." Aslında, seçim son derece sınırlıdır: Batı tankları büyük ölçüde modifiye edilmiş ve en son elektroniklerle donatılmış olsa da, temel modeller onlarca yıllıktır. Ancak başka seçenekler de var: Geçen yıl hizmete giren ve Türkiye ile anlaşma imzalamış olan Koreli K2 Black Panther tankı ve ilk kez 2011'de tanıtılan, ancak hizmete giren Ukraynalı Oplot BM.

Rusya, Armata'yı tanıttıktan sonra, Ukraynalılar sosyal medyada onunla alay etti. Blogcu Mykola Gritsenko Facebook'ta "Bu tırtılların üzerindeki bir tabut" diye yazdı. Yakında, Ukraynalı bir TV programı, Oplot başkanlığındaki küresel bir tank derecelendirmesi hazırlarken, Armata dördüncü sırada yer aldı.

Ancak Oplotlar doğu Ukrayna'daki Rus tanklarıyla savaş halinde değil. Yeni tankı üreten devlet holdingi Ukroboronprom'un yönetici direktörü Serhiy Pinkas'a göre: "Oplot ihraç etmek savaşta kullanmaktan daha karlı. İhracat fiyatı 4,9 milyon dolar. Onu satmak ve kullanmak daha iyidir. onarımlar için para." ve on T-64'ün modernizasyonu".

Gerçekten de, Ukrayna bu yıl Tayland'a Oplot ihracatına yeniden başladı ve 39 tank teslim etmeyi umuyor.

Norinco, Kamerun ve Pakistan'dan VT-4'e şimdiden ilgi görüyor. Üreticiye göre Çin tankının maliyeti, 2012'de yaklaşık 6 milyon dolara mal olan M1 Abrams'tan 3 milyon dolar daha ucuz. Bu fiyata yeni tasarlanmış bir tank inanılmaz derecede iyi bir anlaşma.

"Armata" nın geliştirilmesinde para biriktirmediler ve yaklaşık 7,8 milyon dolara satıyorlar. Şimdiye kadar, kısmen denenmemiş bir arabanın yüksek fiyatı ve kısmen de Rusya'nın yeniden silahlanmayla ilgilenmesi nedeniyle müşteri yok. Rusya Askeri Sanayi Komisyonu'na göre, ilk ihracat teslimatları 2020 için planlanıyor.

Doğu Ukrayna'daki savaşın, Rusya'nın Ukrayna'nın eski Sovyet tanklarına karşı T-14'ler göndermesine yetecek kadar uzun sürmemesi yalnızca umut edilebilir. Piyasa rekabeti çok daha sağlıklı olur.


Acron Yönetim Kurulu Başkanı ve Acron Birinci Başkan Yardımcısı Alexander Popov, 2017 yılı sonuçlarına göre, Acron'un FAVÖK'ü cari yıl için planda belirtilen rakama göre %14 artırmayı planladığını söyledi.

“Gübre fiyatlarının son birkaç ayda çok iyi artması nedeniyle net nakit akışlarımızın artmasını bekliyoruz - özellikle azotlu gübreler ve amonyak için. FAVÖK seviyemizin (2017'de) bu yılın başında modelimizde varsaydığımızdan çok daha yüksek olacağını görüyoruz... dedi.

Aynı zamanda, Popov, göstergenin tahminini ticari sırları gerekçe göstererek yıllık bazda belirtmedi.

Mineral gübre fiyatlarının mevcut seviyelerde kalacağı veya mevsimsel olarak hafifçe artacağı tahmin edildiğinden, şirketin 2018 mali modelini yukarı doğru revize edeceğini de sözlerine ekledi.

Şirketin üst düzey yöneticisi, Akron'un net borç/FAVÖK oranını 2 katına kadar tutmayı planladığını kaydetti.

Rakiplerimizin yatırım stratejilerini inceliyoruz ve son yıllarda bir paradigma kayması yaşandığını görüyoruz. Ve daha önce çoğu şirket borç seviyesini gerçekten 1-2x seviyesinde tutmaya çalıştıysa, şimdi birçoğu 3x'in çok ötesine geçti ve bu, sadece Rus değil, rakiplerimizin büyük bir kısmı. Ve böyle bir durumda, kapasite artırımına, geliştirmeye şimdi ciddi para yatırmazsak, döngünün bir sonraki yükselişinde rakiplerimizin çok daha ileriye gideceğini ve oturup bunu yaptığımız için mutlu olacağımızı anlıyoruz. Borç seviyesi düşük ama gelişme yok. Bu nedenle, kesin olarak bir karar verildi: geliştirme ana şeydir, sonra temettüler ve borç seviyesi ilk iki şeyin bir türevidir, ”dedi Popov.

Ona göre, şirket temettü ödemesine karar verme sürecinde net kar göstergesine bağlı değil. Buradaki kilit nokta, serbest nakit akışıdır, çünkü uluslararası finansal raporlama standartlarına göre net gelir genellikle "şirketin mevcut refahının veya sıkıntılarının gerçek seviyesini yansıtmaz".

Yakın gelecekte DPT yok

Akron'un halka açıklık oranında hafif bir düşüşten bahseden Popov, hazine hisselerindeki artışın yalnızca yatırımcıların arzusundan kaynaklandığını kaydetti. “Yatırımcılar gelip bize kendi hisselerimizi geri almamızı teklif ediyor. Direnmiyoruz, satın alıyoruz” dedi.

“Elbette, potansiyel yatırımcıların halka açıklık oranını artırma talebini görüyoruz, ancak şimdi artırıp DPT yapacağımızı söyleyemem, çünkü hala bir sonraki yatırım genişlememizi gerçekleştirmemiz ve geri dönmemiz gerekiyor. Birkaç yıl içinde bu sorun, "dedi Popov.

Ona göre, şirketin artık kendi fonlarını, kredilerini ve tahvillerini kullanarak ek dış finansman çekmesine gerek yok.

“Fiyatlar toparlanıyor. Ancak (DPT - ed. notuna girmeden önce) bunun uzun süredir devam eden bir hikaye olduğundan ve Çinli verimsiz üreticilerin ve kısmen Ukrayna'nın bunu terk etmesine yönelik bir dalgalanma ve piyasa tepkisi olmadığından emin olmamız gerekiyor. Her halükarda, konuştuğumda (fiyat iyileşmesinden sonra DPT'den olası bir çıkış hakkında - ed. not), büyük yatırım programımızı bitirdiğimiz ve başka şeylere odaklandığımız gerçeğinden yola çıktık. 10 yıllık yatırım programımızı tamamladıktan sonra, bunun daha da büyük yatırım programımızın sadece ilk turu olduğu sonucuna vardık ve geçen yılın sonunda 2025 yılına kadar bir kalkınma programı benimsedik. Dolayısıyla burada sadece fiyat seviyesi ürünler için belirleyici değil” diye ekledi üst düzey yönetici.

Şirket hakkında

Akron, dikey olarak entegre edilmiş bir mineral gübre şirketidir. Gübre ve organik sentez ürünleri üreticilerini içerir - North-West Phosphate Company'nin madencilik varlığı olan Acron ve Dorogobuzh. Acron ayrıca Perm Bölgesi'ndeki Talitskoye potas yatağını geliştirmek için bir proje uygulamayı planlıyor.

Şirketin ana yararlanıcısı, Akron'un %85,46'sını kontrol eden Vyacheslav Kantor'dur, şirketin %10,45'i Ulusal Uzlaştırma Depozitosu'nun emrindedir. Acron'un hisseleri Moskova Borsası ve LSE'de işlem görmektedir.

Rus nüfusunun Ocak-Temmuz 2014'teki göç artışı, 2013'ün aynı dönemine göre %14 azaldı

Modern dünyada, dünyanın tek tek ülkelerinin ve bölgelerinin nüfusunun büyüklüğünü ve bileşimini değiştirmede göçün rolü önemli ölçüde artmıştır. Doğal nüfus düşüşü (Rusya'da 1992-2012) veya sıfıra yakın önemsiz doğal artış (çoğu gelişmiş ülke için tipik) bağlamında önemi özellikle büyüktür. 2013 yılı yıllık gelişimine göre, göç artışı Rusya'nın nüfusundaki küçük doğal artışı (24 bin kişi) önemli ölçüde artırdı ve ülke nüfusundaki toplam artışın %92,5'ini sağladı. 2012 ile karşılaştırıldığında, göç artışı miktarı çok az değişti ve yaklaşık 296 bin kişiye ulaştı (%0,3 daha fazla). Federal Devlet İstatistik Servisi (Rosstat) tarafından yayınlanan operasyonel aylık kayıtlara göre, Ocak-Haziran 2014'teki göç kazancı, Rusya'nın doğal düşüşün bir sonucu olarak kaybını 4 kattan fazla aşarak tamamen telafi etti (+116.7 vs. -28.6 bin kişi) ve Ocak-Temmuz aylarında - 29'dan fazla ( -5.0 bin kişiye karşı +145,7 ) .

Rusya'nın nüfusu, 1975'ten beri diğer ülkelerle (daha sonra esas olarak tek bir devletin birlik cumhuriyetleriyle) göç alışverişi nedeniyle artmaktadır. Bu dönemden önceki 30 yıl içinde, Rusya, aksine, birlik cumhuriyetleri ile göç mübadelesinde nüfusunu kaybediyordu. 1990'ların ilk yarısında, uluslararası göç dengesi keskin bir şekilde arttı, on yılın ortasında en yüksek değere ulaştı (1994'te 845,7 bin kişi ya da ‰ 5,7), ancak daha sonra göçte hızlı bir azalma yönünde istikrarlı bir eğilim vardı. göç aktivitesi ve sonuç olarak - ve göç büyümesi (Şekil 1).

Bu durumda kayıtlı göçten bahsettiğimiz ve hacminin büyük ölçüde zamanla değişen kayıt kurallarına ve uygulamalarına bağlı olduğu unutulmamalıdır.

Buna ek olarak, Rosstat, mevcut muhasebeye göre tahmin edilenden daha yüksek olduğu ortaya çıkan 2002 ve 2010'daki Tüm Rusya nüfus sayımlarının sonuçlarına dayanarak ülke nüfusunu ayarlama sürecinde göç artışı tahminlerini iki katına çıkardı (göçün küçümsenmesi) nedeni olarak kabul edildi).

Göçü daha eksiksiz bir şekilde kaydetmek için, 2011'de muhasebe kuralları tekrar değişti - nüfusun uzun vadeli göçünün istatistiksel kaydı, kalış yerinde 9 ay veya daha fazla bir süre (önceden - 1 için) kayıtlı kişileri içermeye başladı. yıl veya daha fazla). Aynı zamanda, 2011 yılında, ikamet yerine kayıtlı (kayıttan çıkarılan) göçmenlerin toplam geliş (kalkış) sayısından ayrıldı (yani iki seri veri yayınlandı, bunlardan biri önceki yılların verileriyle oldukça karşılaştırılabilir). Gelecekte, ikamet yerindeki kayıtla ilgili veriler artık tahsis edilmedi.

Uzun vadeli göç kriterlerindeki değişiklik, her şeyden önce, yoğunluğu 2011'de (2.2‰) öncekine göre göç kazancı katsayısının değerini aşan geliş ve net göç sayısında önemli bir artışa yol açtı. on yıl (2001'den beri). 2012 yılında, yapılan değişiklikler nedeniyle kayıtlı emeklilik sayısı daha da artmıştır.

2012 yılında, Rusya'ya daimi ikamet veya 9 ay veya daha fazla kalmak için diğer ülkelerden 417,7 bin kişi geldi; bu, önceki 2011'de kaydedilenden 61,1 bin kişi (% 17,2) daha fazla. Aynı zamanda, Rusya'dan ayrılan insan sayısı daha da arttı - 2011'den 86.3 bin kişi (2.4 kat) daha fazla 122,8 bine kadar. Bu, uzun süreli göçün muhasebeleştirilmesi prosedüründeki değişiklikle doğrudan ilgilidir, çünkü kalış süresi sona eren göçmenler, ayrılanların sayısına otomatik olarak dahil edilir.

Sonuç olarak, 2012 yılında Rus nüfusunun göç artışı (net veya net göç) 294,9 bin kişi veya ‰ 2,1 olarak gerçekleşti. 2011 yılına göre (320,1 bin kişi veya ‰ 2,2) 25,2 bin kişi veya %7,9 azaldı.

2013'te Rusya'ya 2012'ye göre %15,5 daha fazla göçmen geldi (482,2 bin kişi), ancak aynı zamanda Rusya'dan ayrılanların sayısı daha da arttı -% 51,8 (186.4 bin kişi). Sonuç olarak, göç artışı 2012'ye göre çok az değişti ve 2012'de olduğu gibi 295,9 bin kişi veya 10 bin kişi başına 20,6 oldu.

Ocak-Temmuz 2014'te, diğer ülkelerden Rusya'ya gelen kişi sayısı (Kırım Federal Bölgesi verileri hariç) artmaya devam etti ve aynı döneme göre 45,7 bin kişi (% 17,4) daha fazla olan 307,6 bin kişi oldu. 2013 yılında. Aynı zamanda, Rusya'dan ayrılanların sayısı da arttı ve daha büyük ölçüde: 169 bin kişiyi aştı, bu da 69,1 bin kişi veya Ocak-Temmuz 2013'ten 1,7 kat daha fazla.

Sonuç olarak, Ocak-Temmuz 2014 döneminde Rus nüfusunun göç artışı (net veya net göç) 138,4 bin kişi veya yıllık olarak ‰ 1.7 olarak gerçekleşti. Bu 23,5 bin kişi veya 2013'ün aynı dönemine göre %14,5 daha az (yüzde 1,9). Ocak-Temmuz 2011'de, uzun vadeli göçü hesaba katan yeni kurallara göre göç artışının neredeyse% 20 daha yüksek (172.9 bin kişi veya 2.1‰) ve Ocak-Temmuz 2012'de - %17 daha yüksek (167.1 bin kişi veya 2.0‰). Böylece, 2011 yılında göç kayıt kurallarında yapılan değişiklikten sonra keskin bir şekilde artan göç artışı, kayıtlı geliş ve gidişlerdeki artış zemininde azalmaktadır.

Şekil 1. Rusya'dan geliş ve gidiş sayısı (bin kişi) ve göç artışı (10 bin kişi başına), 1980-2014*

* 2011 yılı verileri eski (2011) ve yeni (2011n) muhasebe kurallarına göre verilmiştir;
2014 - Kırım Federal Bölgesi ile ilgili veriler hariç, bir yıl bazında Ocak-Temmuz verilerine dayanan bir tahmin.

Kırım Federal Bölgesi'ne ilişkin veriler dikkate alındığında, Ocak-Temmuz 2014 döneminde Rusya nüfusunun göç artışı 2013'ün aynı dönemine göre %12,7 azaldı (167.0 bin kişiye karşı 145,7 veya 2,0 ‰'ye karşı 1,7).

Yıllık gelişme verilerinde, Rosstat kayıtlı göçmenlerin kayıt türlerine ve kayıt koşullarına göre dağılımını vermektedir.

Kayıtlı göçmen sayısındaki artış (2011'de 3.415.000 gelenden 2013'te 4.497.000'e ve aynı yıllarda 3.095'ten 4.201 bine çıktı), daha büyük ölçüde kalış yerinde kayıt nedeniyle meydana geldi (Şek. 2-3) .

Rusya nüfusunun göç artışı büyük ölçüde ikamet yerine kayıtlı göçmenlerden oluşuyor: 2011'de - üçte ikisi (217 bin kişi veya% 67,9), 2012'de - neredeyse tamamen (290 bin kişi veya 98. 2) %) ve 2013 ve Ocak-Temmuz 2014'te toplam göç kazancını aştı.

Göç artışının üçte birinden biraz fazlasını ikamet yerinde kayıtlı göçmenler oluşturmaktadır (2011'de %33,4, 2012'de %34,6, 2013'te %36,5 ve Ocak-Temmuz 2014 verilerine göre - %45,9). Mutlak olarak, ikamet yerinde kaydedilen geliş ve gidiş kaynaklı göç artışı 2011 yılında 107 bin kişi, 2012 yılında 102 bin kişi, 2013 yılında 108 bin kişi ve Ocak-Temmuz 2014 döneminde 64 bin kişi olmuştur.

Kalış süresinin bitiminden sonra otomatik kayıt silme (başka bir bölgede geçici olarak kaldıktan sonra ikamet yerine dönüş) başlangıçta önemsiz bir göç kaybına yol açtı - 4 bin kişi veya 2011'de -% 1.3. Ancak 2012 yılında önemli bir değere (-97 bin kişi) ulaşmış ve 2013 yılında (-162 bin kişi) ve Ocak-Temmuz 2014 döneminde (-157 bin kişi) büyümeye devam etmiştir.

Şekil 2. Kayıt türüne göre Rus göçmenlerin dağılımı, 2011-2014*, bin kişi

Kaldıkları yerde kayıtlı göçmenler arasında, 9 aydan bir yıla kadar kalış süresi olan kişilerin oranı artmaktadır - gelenler için 2011'de %17,9'dan 2013'te %22,0'a, ayrılanlar için sırasıyla %15,9'dan %17,2'ye. Göç artışına (ikamet yerine göre) katkıları %27'den %39'a yükseldi.

Hepsinden önemlisi, kalış yerine kayıtlı göçmenler arasında, 1 ila 2 yıl arasında kalma süresi olan kişilerin payı biraz azalmıştır. 2011 yılında gelenler arasında %32 ve ayrılanlar arasında %34 iken, 2012-2013'te sırasıyla %29 ve %31'dir. Göç artışına katkı (kaldığı yerde) %23'ten %19'a düştü.

2 ila 3 yıl arasında kalan göçmenlerin payı biraz daha düşüktür, ancak göç kazanımına azalsa da daha önemli bir katkı sağlamaktadırlar (2011'de %31, 2013'te %26).

Şekil 3. Rus göçmenlerin kayıt türleri ve kalış sürelerine göre dağılımı, 2011-2014*, %

* 2014 - Kırım Federal Bölgesi verileri hariç, yıl bazında Ocak-Temmuz verilerine dayalı tahmin

3 yanıt

Optimizasyonla derlemeden sonra, C programından hala birkaç fark var.

  • C programı makine bölmesini kullanırken (ki bu keser) div kullanıyorsunuz [ancak kendine saygısı olan herhangi bir C derleyicisi bunu bir vardiyaya dönüştürür, bu da onu daha da hızlı yapar], bu Haskell'de alıntı olur; bu da çalışma süresini yaklaşık %15 oranında azalttı.
  • C programı 64-bit (hatta 32-bit) sabit genişlik kullanır, ancak o zaman doğru cevabı alması şanstır, çünkü bazı ara değerler 32-bit aralıkları aşıyor), Haskell programı keyfi kesinlik kullanıyor tamsayı GHC'nizde (Windows olmayan 64-bit işletim sistemi) 64-bit Int varsa, Integer'ı Int ile değiştirin. Bu, çalışma süresini yaklaşık 3 kat azalttı. 32bit bir sistemdeyseniz şansınız kalmaz, GHC orada yerel 64bit talimatları kullanmaz, bu işlemler hala oldukça yavaş olan C çağrıları olarak uygulanır.

Not almak için, bunu khakas not paketlerinden birine aktarabilirsiniz, hatırladığım tek şey data-memocombinators , ancak başkaları da var. Veya önceden hesaplanmış değerlerin bir haritasını saklamak gibi kendiniz yapabilirsiniz - bu en iyi Devlet monadında işe yarar.

Control.Monad.State.Strict içe aktarma nitelikli Data.Map'i Harita olarak içe aktarma Data.Map (Harita, singleton) türü Not = Harita Tamsayı Int syr:: Tamsayı -> Durum Notu Int syr n = do mb<- gets (Map.lookup n) case mb of Just l ->dönüş l Hiçbir şey -> izin ver m = n bile olsa n ```` 2 başka 3*n+1 l<- syr m let l" = l+1 modify (Map.insert n l") return l" solve:: Integer ->Int -> Tamsayı -> Durum Notu (Tamsayı,Int) çöz maksi len başlangıç ​​| len > 1000000 = dönüş (maksi,len) | aksi halde = dol<- 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)

ama muhtemelen çok büyük olmayacak (gerekli katılığı eklemiş olsanız bile). Sorun, Harita aramalarının ucuz olmaması ve yapıştırmanın nispeten pahalı olmasıdır.

Başka bir yöntem, değiştirilen diziyi arama için kaydetmektir. Değerleri önbelleğe almak için makul bir üst sınır seçmeniz (başlangıç ​​değerleri için tahminden çok daha büyük olmamalıdır) ve dizilerin bellek yetersiz bölümleriyle ilgilenmeniz gerektiğinden kod daha karmaşık hale gelir. Ancak bir dizi aramak ve yazmak hızlı olabilir. 64 bit Int s'niz varsa, aşağıdaki kod oldukça hızlı çalışır, burada 1 milyon limit için 0.03s ve 10 milyon limit için 0.33 sürer, buna karşılık gelen (makul olarak yapabildiğim kadarıyla) C kodu 0.018 veya 0.2'de çalışır s.

Modül Ana (main) burada System.Environment (getArgs) içe aktarılır Data.Array.ST içe aktarılır Data.Array.Base içe aktarılır Control.Monad.ST içe aktarılır Data.Bits içe aktarılır.Int main::IO () ana = args yap<- getArgs let bd = case args of a:_ ->bir oku _ -> 100000 yazdır $ collMax bd sonraki:: Int -> Int sonraki n | n.&. 1 == 0 = n `güvensizShiftR` 1 | aksi halde = 3*n + 1 collMax::Int -> (Int,Int16) collMax üst = 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 ->ben""<- go 1 $ next m unsafeWrite arr m (l"" + 1) return (l+l"") _ ->dönüş (l+l"-1) mi ml i toplayın | üst< i = return (mi, ml) | otherwise = do l <- go 1 i if l >ml sonra topla i l (i+1) yoksa topla mi ml (i+1) unsafeWrite arr 1 1 topla 1 1 2

C programı unsigned long kullanır, ancak Integer isteğe bağlı olarak büyük tamsayıları saklayabilir (bu büyük sayıdır). Data.Word'ü içe aktarırsanız, işaretsiz bir makine sözcüğü tamsayısı olan Word'ü kullanabilirsiniz.

Tamsayıyı Word ile değiştirip ghc -O2 ve gcc -O3 kullandıktan sonra, C programı 0.72 saniyede ve Haskell programları 1.92 saniyede çalışır. 2.6x fena değil. Ancak, ghc -O2 her zaman yardımcı olmaz ve bu da yardımcı olmayan programlardan biridir! Yaptığınız gibi sadece -O kullanarak, yürütme süresi 1,90 saniyeye düşürülür.

Div'i quot ile değiştirmeyi denedim (bu, C ile aynı türde bölmeyi kullanır, yalnızca negatif girdilerde farklılık gösterirler), ancak garip bir şekilde, bu Haskell programını benim için biraz daha yavaş çalıştırdı.

Project Euler'in aynı sayısında yanıtladığım bu önceki Stack Overflow sorusuyla syr işlevini hızlandırabilirsiniz.

Mevcut sistemimde (32-bit Core2Duo), cevaplarda belirtilen tüm optimizasyonlar da dahil olmak üzere Haskell kodunuz derlemek için 0.8s ve çalıştırmak için 1.2s sürer.

Çalışma zamanını derleme zamanında geçirebilir ve çalışma zamanını sıfıra düşürebilirsiniz.

Modül Euler14 burada Data.Word import Language.Haskell.TH terimleri:: Word -> Word terimleri n = countTerms n 0 burada countTerms 1 acc = acc + 1 countTerms n acc | çift ​​n = sayTerms (n `div` 2) (acc + 1) | aksi halde = sayTerms (3 * n + 1) (acc + 1) en uzunT:: Kelime -> Kelime -> (Kelime, Kelime) en uzunT mi mx = mi mx'i (0, 0) bul burada mi mx'i (ct,cn) bul | mi == mx = eğer ct > mi terimleri o zaman (ct,cn) başka (mi, mi terimleri) | aksi halde = find (mi + 1) mx (eğer ct > terimleri mi o zaman (ct,cn) else (mi, mi terimleri)) en uzun:: Word -> Word -> ExpQ en uzun mi mx = return $ TupE burada (a, b) = en uzunT mi mx

(-# LANGUAGE TemplateHaskell #-) import Euler14 main = print $(en uzun 500000 999999)

Sistemimde derlenmesi 2,3 saniye sürüyor, ancak yürütme süresi 0,003 saniyeye düşürüldü. Derleme zamanı işlevi yürütme (CTFE), C/C++'da yapamayacağınız bir şeydir. CTFE desteği hakkında bildiğim diğer tek programlama dili D programlama dilidir. Ve tamamlanması için, C kodunun derlenmesi 0,1 saniye ve çalışması 0,7 saniye sürer.