Şimdi Ara

Çifte asal sözcük olup olmadığını test eden kod

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
23
Cevap
0
Favori
360
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 12
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • Bir sözcük aşağıdaki gibiyse 'çifte asal' dır:

    Sözcük uzunluğu asal sayı
    Sözcüğü oluşturan karakterlerin Türkçe alfabedeki sıra noları toplamı asal sayı

    Örneğin afyon sözcüğü çifte asaldır cunku hem uzunluğu 5 asal sayı hem de alfabe sıra no toplamı 71 asal sayıdır.

    Fakat örneğin kapak çifte asal değildir. Uzunlu 5 asaldır fakat alfabe sıra no toplamları (k=14 x 2, a=1 x 2, p=20 toplam) 50'dir ve 50 asal sayı değildir o yüzden 'kapak' çifte asal değildir.

    Sözcükler arada boşluk olan 2 veya daha cok parça da olabilir. Boşluklar sözcük uzunluğuna +1 eklenecek fakat alfabe sıra no toplamında sıfır olarak alınacaktır, yani eklenmeyecektir. Örneğin 'akciğer kesecikleri' 19 karakter uzunluğundadır, asal sayı ve alfabe sıra no toplamı da 197'dir yani asaldır, dolayısıyla 'akciğer kesecikleri' de çifte asal sözcüktür. Fakat örneğin 'üst kat' sözcüğü çifte asal değildir cunku uzunluğu 7 fakat alfabe sıra no toplamları 111'dir.

    Verilen bir sözcüğün çifte asal sözcük olup olmadığını test eden kod yazınız. Kod cıktısı şuna benzer olmalıdır:
    quote:


    Sözcük: baget Çıktı evet (5,41)
    Sözcük: melahat Çıktı evet (7,73)
    Sözcük: alt kat Çıktı evet (7, 79)

    Sözcük: kapak Çıktı hayır (5, 50)
    Sözcük: üst kat Çıktı hayır (7, 111)


    Not: Ödev sorusu değildir. Kod egzersiz ve söyleşi amaçlıdır. Fakat önce kod sonra söyleşi.
    Not 2: Konu YG sohbet bölümünde açılacaktır fakat YG sohbet bölümüne açılan konular görünmediği için burada açılmıştır.



    < Bu mesaj bu kişi tarafından değiştirildi Tuğkan-0153 -- 15 Eylül 2020; 13:2:45 >
    < Bu ileti mini sürüm kullanılarak atıldı >







  • Hocam böyle soruları hangi siteden temin ediyorsunuz acaba ?

    < Bu ileti DH mobil uygulamasından atıldı >
  • Kod

    Yığını:
    var metin = Console.ReadLine(); bool asalmı(int sayı) => Enumerable.Range(1, sayı).Where(x => sayı % x == 0).SequenceEqual(new[] { 1, sayı }); var toplam=metin.Sum(z => "abcçdefgğhıijklmnoöprsştuüvyz".IndexOf(z) + 1); Console.WriteLine((asalmı(toplam) && asalmı(metin.Length))?"evet "+toplam+" "+metin.Length:"hayır "+toplam+" "+metin.Length);



    < Bu mesaj bu kişi tarafından değiştirildi Gökşen PASLI -- 15 Eylül 2020; 19:21:22 >
  • Gökşen PASLI G kullanıcısına yanıt
    hocam neden uğraştın bu kadar rakuda 2 satır bu soru

    < Bu ileti DH mobil uygulamasından atıldı >
  • zorlasam düşürürüm biraz daha da kod okunaklı olmaz

  • Gökşen PASLI G kullanıcısına yanıt
    Denedim çalışıyor. Arada boşluklu sözcükleri de doğru hesaplıyor.
    Çifte asal sözcük olup olmadığını test eden kod


    Raku ile cok uğraşmadan 3 satırda çözdüm ben de. Biraz kassam 2 satıra indirebilirim.
    Çifte asal sözcük olup olmadığını test eden kod

    < Bu ileti mini sürüm kullanılarak atıldı >




  • Çok çeşitli yerlerden. Belli bir yeri yok. Bazen reddit, bazen hacker news.
    www.mycsharp.de
    Das Programmier-Spiel: nette Übungsaufgaben für zwischendurch | Smalltalk | myCSharp.de - DIE C# und .NET Community
    https://www.mycsharp.de/wbb2/thread.php?threadid=80566&threadview=0&hilight=&hilightuser=0&sid=5265dc7cc1f2de567bef08948bb2377b&page=1

    da Almanların C# sitesinde bir konuda 100+ bu tarz problem ve C# ile çözümü var, bazen onlar arasından.

    < Bu ileti mini sürüm kullanılarak atıldı >




  • Eyw hocam

    < Bu ileti DH mobil uygulamasından atıldı >
  • Kurtçu Restrop kullanıcısına yanıt
    1 değil miydi hocam raku yada mı zam gelmiş

    < Bu ileti DH mobil uygulamasından atıldı >
  • hocam kesin 1 de vardır da bana zor geldi bu ben 2yle çözdüm ya da ben yeteneksiz olduğum içindir

    < Bu ileti DH mobil uygulamasından atıldı >
  • Kodun düzgün olması satır sayısından daha önemli. Benim 3 satırlık çözümde örneğin 3. satırdaki liste elemanlarına uyguladığım is-prime fonksiyonunu 2 kez tekrar ediyor. Raku 'da bir listenin tüm elemanlarına bir fonksiyonu 1 kerede uygulatma özelliği var fakat ona bakmaya üşendim :)

    < Bu ileti mini sürüm kullanılarak atıldı >
  • Önemli olan satır sayısı değil, fonksiyonel veya pratik düşünebilmek önemli olan. Benim çözüm neden 3 satır? Cunku yeterince fonksiyonel düşünmedim, kolayıma geldiği gibi döşedim.

    Josephus Problem sorusu vardır Türkçeye ölüm çemberi veya başka isimler altında cevriliyor. Onu örneğin 2 satırda çözdüm 1 satıra indirmek için programlama dilinin kendisinde bir hack yapmam gerekli, onu da yapsam 1 satır. Fakat benden daha pratik düşünen, gerçek fonksiyonel kod yazabilen bir kişi hiç dili hack'lemeden direkt 1 satırda da yazabilir. O durumda bence 1 satır olmasından cok o kişinin pratik düşünmesi önemlidir.

    < Bu ileti mini sürüm kullanılarak atıldı >
  • Hocam raku kullanım alanları tam olarak neler raku ile bilgi sahibi olacağımız güzel bir blog var mı gerçekten sizin sayenizden merakım arttı bu dile

    < Bu ileti DH mobil uygulamasından atıldı >
  • Türkçe kaynak soruyorsan yok. İngilizce olarak blog ve kaliteli (True PDF) ücretsiz ebook lar var.

    Raku Ekim 2019'da kadar Perl 6 adıyla geçiyordu. Temmuz 2019'da ben öğrenmeye başladığımda adı Perl 6'ydı. Yani Perl 5'in bir üst versiyonu fakat Perl 5 ile geriye dönük uyumlu değil. Raku isimlendirilmesinden sonra Perl 5 'in artık başka major versiyonu cıkmayacağı için sadece Perl denmeye başlandı. O yüzden Raku kullanım alanları olarak, Perl'i referans alabiliriz. Perl web'in ilk cıktığı yıllarda (1995) en cok kullanılan backend programlama dili olarak biliniyor. Örneğin Amazon e-ticaret altyapısını Perl ile geliştirdi ve günümüzde dahi Perl'i kullanan firmalardan. Ayrıca StartPage . com (arama motoru) everything2 . com (Ekşi Sözlük ve Wikipedia karışımı bir site) , IMDB (Internetteki en büyük sinema ve oyuncu veritabanı) gibi siteler de Perl ile geliştirilmiş cunku yogun metin işleme / text processing gerektiren işlerde Perl oldukça iyi. Ayrıca 1 satırlık program "one-liner" olayını da Perl yaygınlaştırdı cunku 5-10 hatta daha fazla satırda yapılabilen işlemleri kısaca kodlayabilen bir yapısı var. Bu arada "one-liner" tek satır kod anlamından yıllar önce Amerika'da 1950'lerde başlayan TV kanallarında talk şov yapan kişilerin kısa ve öz esprileri için kullanılan bir deyimdir; Perl ile bu programlar için de kullanılmaya başlanmış. Ancak bu kolaylıkların ve madalyonun diger tarafı da var. Perl syntax 'ı "Perl bilmeyen" için karışık şifreli gibi görünür. Değişkenlerin başında $ @ % gibi önekler, beklenmedik syntax yapısı vs. programcıları Perl'den soğutmuştur. Ne var ki Perl tam da o karışık görünen synax 'ı sayesinde o kadar pratik ve başarılı olmuştur. Raku, Perl'deki bu syntax 'ı kolaylaştırmış olsa da yine de yapısı ve syntax kullanım şekli diger dillere göre farklıdır.

    < Bu ileti mini sürüm kullanılarak atıldı >




  • Hocam çok sağolun bilgiler için kesinlikle değindiğiniz noktaları araştırıp üzerine düşeceğim en kısa zamanda

    < Bu ileti DH mobil uygulamasından atıldı >
  • hocam sizce competitive programming için C++ mı yoksa bizim raku mu dediğiniz gibi 1 satırla çok şey yapılabiliyorsa bu competitive prog. için büyük + ama memory usage tarzı şeyler de önemli

    < Bu ileti DH mobil uygulamasından atıldı >
  • Kurtçu Restrop kullanıcısına yanıt
    C++14 ve yukarısı ile oldukça competitive programlar yazılabiliyor fakat type sistemi ve daha önemlisi her bir değişkeni önce tanımlamak zorunda olmak, C++ kodlarını oldukça uzun yapabiliyor. C++17 den itibaren C++'ın fonksiyonel programlama gerçekten süper oldu ancak bunlar hep makina kodunda çalışmak zorunda olan sistem programları için, örneğin bir Firewall programı için büyük avantaj. Ayrıca bir diger güzel şey örneğin Raku'da yazdığın tam fonksiyonel bir kodu kolaylıkla C++17 'de de yazabiliyorsun (birkaç programda denedim) Raku ile hızlı bir çözüm yazıp, istenen şekilde calıştığını gördükten sonra onu C++'a geçirerek oldukça üst düzeyde tasarlanmış C++ programları ortaya cıkarabilirsin ve C++ makina hızında çalıştığı için bu hem developer hem CPU zamanı açısından maksimum verimlilik anlamına geliyor ve bu süreç Golang ve Rust gibi C++ gibi makina koduna derlenen fakat C++'den cok daha pratik ve kolay diye reklamı yapılan dillerin eline de su döküyor, onları gereksiz bırakıyor.

    Ancak tüm bunlar C++ 'ın kullanıldığı sistem programları, belki bazı grafik programları, Linux vs için masaüstü ortamı programları (KDE), görüntü işleme (OpenCV) gibi ortamlarda bir avantaj. competitive programming farklı bir alan ve bu alanda iddialı olabilmek için C++ en isabetli seçim değil.

    < Bu ileti mini sürüm kullanılarak atıldı >




  • Hocam competitive programming derken topcoder'dan bahsediyorsak bu yarismalarda genelde c++ kullaniliyor. C++da yazilmis O(N^2) bir program rakuda yazilan O(NlogN) bir programdan daha hizli calisabiliyor. Bir de c++ stl'de bir cok kullanisli veri yapisi var(heap,bst,dictionary,stack).

  • hynx kullanıcısına yanıt
    "C++da yazilmis O(N^2) bir program rakuda yazilan O(NlogN) bir programdan daha hizli calisabiliyor. Bir de c++ stl'de bir cok kullanisli veri yapisi var(heap,bst,dictionary,stack)."

    bunlar zaten bilinen şeyler. Hiç C++ bilmeyen birine mi yoksa bana mı yazdın bunu?

    Competitive Programming deyince ilk akla gelen şey, birçok iş yapan kodu kısa sürede yazmak, CPU'da en hızlı çalışan kodu yazmak değil. Nitekim

    en.wikipedia.org
    Competitive programming - Wikipedia
    https://en.wikipedia.org/wiki/Competitive_programming


    bakınca "Judging is based mostly upon number of problems solved and time spent for writing successful solutions" diyor sanırım Türkcesine gerek yok.

    < Bu ileti mini sürüm kullanılarak atıldı >




  • Bu yarismalarda yazilan programlarin calismasi genelde 1-5 saniyeden uzun suruyorsa kod gecersiz sayilir bunu soylemeyi unutmusum, wiki linkinde execution time'dan bahsetmis zaten. Bu yuzden cogu insan riske girmemek icin kodlari c++ ile yaziyor.

  • 
Sayfa: 12
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.