Şimdi Ara

tek sayıları faktoriel olarak nasıl bastırabiliriz aklıma takıldı

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
20
Cevap
0
Favori
474
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • factoriyeli oluşturabilmek for dongüsü ile kolay ama 1! 3! 5! 7! ne kadar tek olsalar da 7! icinde 2 4 6 carpanı var 2n-1 kalıbında nasıl faktoriel oluşturabiliriz



  • Net anlayamadım ama anladığım kadarıyla şöyle değil mi: Normal faktöriyel hesaplayan bir fonksiyon yaparız. Sonra for döngüsü ile tek sayıları değişken atarız.


    for(int i = 1; i<100; i +=2){
    facto(i);
    }

    gibi.

    Ama sanırım siz farklı bir şey soruyorsunuz.
  • Daten kullanıcısına yanıt
    1 3 5 bastırıyor sizin ki bana 1! 3! 5! 7! 9! tek sayıları factoriyeli lazım
  • Hayır, tek sayıların faktöriyelini basıyor işte. Faktöriyel fonksiyonunu tanımlarsanız tamamdır.

    #include <stdio.h>


    int facto(n){
    int value = 1;
    for(int i = n; i>1; i--){
    value *= i;
    }

    return value;
    }

    int main(){

    for(int i = 1; i<10; i += 2){
    printf("%d! = %d\n", i, facto(i));
    }

    return 0;
    }
  • int facto=1;

    for(int i=1;i<deger;i++)
    {
    if(i%2 !=0)
    facto *= i;
    }
    }
  • Daten kullanıcısına yanıt
    evet dediginiz gibi once bi tane faktoriel metodu tanımlamamız lazım bagımsız sonra bi tane 2n-1 seklinde artartna for loop icinde basitce cagırabiliriz ben cok daha karmasık sey düsünüp gozumun onundekini goremedin bi de yazdıgınız facto fonksiyonu (int n) diye parametre alması lazım gibi c syntax pek hatırlamıyorum onu düzeltirseniz tamamdır
  • I0SER_b0y kullanıcısına yanıt
    Pseudo code olarak yazmıştım onu. İkinci mesajımda çalışan kod ekledim ama faktöriyel için yazdığım fonksiyonun optimize edilmesi lazım. Büyük sayılar için verimli değil. Anlaşır olsun diye düz mantıkla gösterdim.



    < Bu mesaj bu kişi tarafından değiştirildi Daten -- 21 Temmuz 2019; 0:49:14 >
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • chnkyn kullanıcısına yanıt
    yanlıs anlamadıysam bu sadece cift sayıları carpıyor 2*4*6*8 seklinde ama yukarıda arkadasş halletti factoriyel methodu yazdık , for ile cagırırsak oyle olur



    < Bu mesaj bu kişi tarafından değiştirildi I0SER_b0y -- 21 Temmuz 2019; 1:6:38 >
  • Daten kullanıcısına yanıt
    long tipinde olur daha da ne olur bilmiyorum



    20 e kadar long 30 kadar saklamam lazım



    < Bu mesaj bu kişi tarafından değiştirildi I0SER_b0y -- 21 Temmuz 2019; 1:2:55 >
  • my $limit=prompt("Hangi tek sayıya kadar faktöryel oluşturulacak? ")-1/2;
    my @tek=map {$^n * 2 + 1}, 0..$limit/2;
    my @tek_fakt = map {[1..$^a]}, @tek;
    for @tek_fakt -> @elt {
    say @elt ~ "! = " ~ reduce {$^a * $^b}, @elt
    }

    Çalışma anı:

    tek sayıları  faktoriel  olarak nasıl   bastırabiliriz aklıma takıldı
  • quote:

    Orijinalden alıntı: I0SER_b0y

    yanlıs anlamadıysam bu sadece cift sayıları carpıyor 2*4*6*8 seklinde ama yukarıda arkadasş halletti factoriyel methodu yazdık , for ile cagırırsak oyle olur
    != 0 demişim. 3%2 != 0 ise demek yani 1 != 0 (true) 3 ü bastırır
  • sorun hocam 30! bastıcak kadar istiyor bunu hangi primitive type tutabilir kesinlikle referance type lazım ama o kadar da bilmiyorum
  • chnkyn kullanıcısına yanıt
    benim anladıgım su hocam yanlıssam düzeltin for loop icinde 1 den n kadar olan sayıları ardısık olarak bastıran bi programın icine bi tane kosul koymusunuz i degeri tek ise carp 1 gelir facto=1*1; olur 2 gelince kosul saglanmaz 3 e bakılır 3 saglar o zaman facto=1*3.; degerine atanır

    1*3*5*7*9 sekinde degerler alır facto ama yukaruda arkadasımız ise once bi normal factorial fonksiyonu yazıyor onun icinden 1 3 5 7 alıyor
    sonucta 5! icinde 2 ve 4 carpanı var yani bunları icine alacak bi sey lazım benim aklıma ilk seferde yattı acaba ben mi yanlıs anlıyorum eger oyle bi durum varsa belirtin
  • 30! hesaplayabilecek BigInteger sınıfını kullanmalısın:
    GeeksforGeeks
    BigInteger Class in Java - GeeksforGeeks
    https://www.geeksforgeeks.org/biginteger-class-in-java


    hocanız bir java.math kütüphanesi eklenerek yapılabilecek şeyi soruyorsa bu programcılıktan cok Java kütüphane alıştırması demektir. 30! 'u hazır paket kullanmadan veri yapısı tasarlayarak yap diyorsa o zaman durum değişir.




  • sorunun bi kısmı o hocam tamamını atsam daha iyi olacak gibi pek anlamıyor kimse oyletek sayıları  faktoriel  olarak nasıl   bastırabiliriz aklıma takıldı



    o kadar acayip ki nested loop kullanarak ilk 15 terimin toplamını yazın bunun ne oldugunu cozmek güc yani
  • I0SER_b0y kullanıcısına yanıt
    ordaki x herhalde kullanıcıdan alınacak
    c# için söyle yaptım test etmek lazım



    using System;
    using System.Linq;
    namespace xxx
    {
    class Program
    {
    public static double Faktöryel(int sayı)
    {
    if (sayı == 1)
    return 1;
    return sayı * Faktöryel(sayı - 1);
    }

    public static double Üs(double x, double y)
    {
    if (y == 0)
    return 1;
    return x * Üs(x, y - 1);
    }

    public static double BüyükKüçük(double x, double y)
    {
    return x > y ? x : y;
    }

    static double arasonuç;
    static double sonuç;
    const double hesaplanacaksayı=1;
    public static void Main(string[] args)
    {

    for (int i = 0; i < 15; i++)
    {

    var bölünen=BüyükKüçük((3+(5*i))*hesaplanacaksayı,Faktöryel(1+(i*2)));
    var bölen = Üs(2 + i*3, 2 + i*1);
    arasonuç = bölünen / bölen;

    if (i%2==0) {
    sonuç -= arasonuç;
    sonuç=sonuç<0?sonuç*-1:sonuç;
    }
    else
    {
    sonuç += arasonuç;
    }

    }


    Console.WriteLine(sonuç);
    Console.ReadKey();
    }
    }
    }



    < Bu mesaj bu kişi tarafından değiştirildi Gökşen PASLI -- 22 Temmuz 2019; 18:11:2 >




  • Gökşen PASLI G kullanıcısına yanıt
    kotu tarafı math func kullanmadan diyor bence aklıma sey geldi pow fonskiyonun kendim yazarım factorial kendim yazarım işte bi tane kullanıcı deger alrım falan da + - gitmesi ve 30! nasıl hesaplayacagım halen fikrim yoksa halletim o kısımları



    < Bu mesaj bu kişi tarafından değiştirildi I0SER_b0y -- 21 Temmuz 2019; 18:46:18 >
  • I0SER_b0y kullanıcısına yanıt
    Biraz saçma bir soru. Böyle sorular ile programcılık öğrenilmez bence. Acaba programcılığı öğrenmemeniz için özellikle mi hazırlıyorlar bunları?

    SOS oyununda da tanım eksiği var, o yüzden yapmadım. SOS oyununda oyun tahtası kaç boyutlarında o belli değil. 8 elemanlı 3 stack kullanacaksın diyor, 8 x 3 boyutlarında mı yani? Fakat hiç kimse 8 x 3 boyutlarında SOS oynamaz. Tutarsızlık var.
  • Hocam sorgulayacak durumda degilim 3 satır 8 sütunlu stack var random içine s veya o atılacak işte her seferinde kontrol edilecek sos olursa player kazanacak ölme eşşegim ölme

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.