#include

simd nedir ve nasıl kullanılır

1.
  • SIMD'nin açılımı, adından da anlaşılacağı gibi 'Tek Komutla Çoklu Veri'dir. Tek bir komutla birden fazla veriyi işlememizi sağlar.
    'işlem' derken, toplama, çıkarma, çarpma, bölme gibi işlemlerin yanı sıra 've', 'veya' ve 'xor' gibi mantıksal işlemleri de kastediyorum.

    Tipik bir programda şunu yaparız:

    int Add(int a, int b)
    {
    int c = a + b;
    return c;
    }

    Peki ya birden fazla dizi veya vektör eklemek istersek?

    void Add ( int a[ 4 ], int b[ 4 ], int c[ 4 ])
    {
    c[ 0 ] = a[ 0 ] + b[ 0 ];
    c[ 1 ] = a[ 1 ] + b[ 1 ];
    c[ 2 ] = a[ 2 ] + b[ 2 ];
    c[ 3 ] = a[ 3 ] + b[ 3 ];
    }

    ilk örnekte, 'a' ve 'b' sayıları kayıt defterlerinde saklanıyor ve bir cpu komutuyla toplanıp değer döndürülüyor, üretilen assembly kodu şu şekilde görünebilir:

    Add:
    add eax, ebx
    ret

    ikinci örnekte, Compiler Explorer'ı Optimizasyonlar etkinleştirilmiş halde derlediğimizde talimat sayısı 14'e çıkıyor -O3
    - Bu iyi görünmüyor.

    Add:
    mov eax, dword ptr [rdx]
    add eax, dword ptr [rcx]
    mov dword ptr [r8], eax
    mov eax, dword ptr [rdx + 4]
    add eax, dword ptr [rcx + 4]
    mov dword ptr [r8 + 4], eax
    mov eax, dword ptr [rdx + 8]
    add eax, dword ptr [rcx + 8]
    mov dword ptr [r8 + 8], eax
    mov eax, dword ptr [rdx + 12]
    add eax, dword ptr [rcx + 12]
    mov dword ptr [r8 + 12], eax
    ret

    Yirmi yıl önce Intel, Pentium III ile vektör işleme için yeni bir komut seti, kayıtlar ve özel donanım geliştirdi. Bu sayede vektör verilerini kayıtlarda depolayıp üzerinde hesaplamalar yapabiliyorduk. Intel SSE komutlarıyla dizi sayılarını şu şekilde toplayabiliriz:

    # include <immintrin.h> //< yalnızca sse istiyorsanız emmintrin.h'yi ekleyebilirsiniz
    __m128i Add (__m128i a, __m128i b)
    {
    return _mm_add_epi32(a, b);
    }

    Yaygın bir benzetme, mutfakta yaptığımız gibi tek tek doğramak yerine birden fazla sebzeyi aynı anda doğramaktır.

    Yukarıdaki kodla talimat sayısını ikiye düşürdük, işte üretilen assembly:

    Add:
    movaps xmm0, xmm1 ; Move b to xmm0
    paddq xmm0, xmm2 ; Add a and b
    ret

    Fonksiyon argümanları a ve b , her biri 4 tam sayı veya 8 kısa sayı veya 16 adet 8 bit sayı tutabilen iki vektör kaydıdır .

    _mm_add_epi32 fonksiyonu iki sayı dizisini birbirine ekler.
    _mm_ Intel'in içsel fonksiyonlarını çağırdığımızda kullandığımız bir önektir.
    _add_ yapmak istediğimiz şeydir (alt, çoğalt, böl…)
    _epi32 kullanmak istediğimiz veri türüdür (32 bit tam sayılar).

    8 bit tam sayılar için _epi8,
    16 bit tam sayılar için _epi16,
    kayan noktalı sayılar için _ps,
    çift sayılar için _pd

    Yani 16 bitlik sayılardan oluşan iki diziyi toplamak isteseydik şunu yazabilirdik:

    __m128i Add(__m128i a, __m128i b)
    {
    return _mm_add_epi16(a, b); // notice epi16 this time
    }

    Yukarıdaki vektörleştirilmiş kod, bu skaler koda eşdeğerdir:

    void Add(short a[8], short b[8], short c[8])
    {
    for (int i = 0; i < 8; i++)
    c[i] = a[i] + b[i];
    }

    SIMD Nedir?
    SIMD'nin ne olduğunu ve nasıl kullanılabileceğini derinlemesine incelemeden önce, özünü ele alalım. CPU'lar, toplama, çarpma, çıkarma, VE, XOR, VEYA, karşılaştırma gibi matematiksel ve mantıksal işlemleri gerçekleştirmek için tamsayı kayıtlarını hesaplamaktan sorumlu bir ALU (Aritmetik Mantık Birimi) içerir. Ayrıca, kayan nokta sayılarını işlemek için kullanılan bir FPU (Kayan Nokta Birimi) de vardır.

    Bir Vektör işleme Birimi (VPU), genellikle hem tam sayı hem de kayan nokta aritmetiğini gerçekleştirebildiği için, birleşik bir ALU/FPU gibi davranır. Bir VPU'yu diğerlerinden ayıran şey, giriş verisi vektörlerine aritmetik işlemler uygulayabilme yeteneğidir.

    Modern CPU'larda, ayrı bir FPU bileşeni yoktur. Bunun yerine, skaler kayan nokta değerleri içerenler de dahil olmak üzere tüm kayan nokta hesaplamaları VPU tarafından gerçekleştirilir. FPU'nun kaldırılması, CPU çekirdeğindeki transistör sayısını azaltır ve bu transistörlerin daha büyük önbellekler, daha karmaşık sırasız yürütme mantığı vb. için tahsis edilmesini sağlar.
    (Kaynak: Oyun Motoru Mimarisi Kitabı)

    'Streaming SIMD Extensions'ın kısaltması olan SSE, Intel tarafından Pentium III işlemciler için geliştirildi. Daha sonra AMD ve Intel gibi şirketler, SSE2, SSE3 ve SSE 4.2 gibi yeni sürümler çıkarmaya devam etti.

    Bu yeni sürümlerde nokta çarpımı ve dize işleme gibi daha fazla talimat eklendi.

    Ardından, 128 bit yerine 256 bit veriyi işlememizi sağlayan AVX geldi. Bu, tek seferde iki kat daha fazla veriyi işleyebileceğimiz anlamına geliyor.

    Ardından AVX512 geldi, ancak bu nispeten yeni bir donanım ve henüz birçok bilgisayar tarafından desteklenmiyor. Çoğunlukla sunucu bilgisayarlarda ve bulut bilişim kurulumlarında bulunsa da, en yeni üst düzey masaüstü işlemcilerin bazıları AVX512'yi destekliyor.

    Bu metin boyunca C kod örnekleri göstereceğim, ancak diğer programlama dillerinin de SIMD komutlarını desteklediğini belirtmekte fayda var. Örneğin, C#, Rust, Zig ve daha birçok dilde SIMD komut desteği bulunmaktadır.

    ipucu: C#’ta Vector4 yapısı varsayılan olarak vektörleştirilmiştir.

    Ayrıca, benzer işlevselliği biraz farklı bir kodlama yaklaşımıyla sağlayan ARM NEON komut seti de var.

    #include <arm_neon.h>
    float32x4 a = vdupq_n_f32(2.0f); // [2.0, 2.0, 2.0, 2.0] 4x float
    float32x4 b = vdupq_n_f32(PI); // [PI, PI, PI, PI] 4x float
    float32x4 res = vmulq_f32(a, b); // res: [TwoPI, TwoPI, TwoPI, TwoPI]

    // Same SSE
    #include <immintrin.h>
    __m128 a = _mm_set1_ps(2.0f);
    __m128 b = _mm_set1_ps(PI);
    __m128 res = _mm_mul_ps(a, b);
    // if you want to create vector by specifiying all elements in SSE
    __m128 all = _mm_setr_ps(1.0f, 2.0f, 3.0f, 4.0f); // [1.0, 2.0, 3.0, 4.0] 4x floats

    ARM NEON'da fonksiyonlar genellikle 'v' ile başlar,
    ardından işlem (örneğin, 'dup', 'add', 'mul'),
    ardından 4 eleman üzerinde işlem yapmak için quad'ı belirten 'q'
    ve son olarak 32 bit float kullanımını belirtmek için '_f32' gelir.
    Bu sözdizimini kullanarak birçok fonksiyon hayal edebiliriz,
    başka bir yerde aramamıza gerek yok.

    Örnek kullanım:
    vmulq_f32(a, b) -> iki float vektörünü çarp
    vsubq_u32(a, b) -> iki uint32 vektörünü çıkar // [ax-bx, ay-by…]

    SIMD Her Yerde
    Kullanıldığı Alanlar: video kodlayıcılar, ses işleme, görüntü işleme,
    oyun motorları, bulut bilişim (veritabanları), makine öğrenmesi, karma oluşturma, kriptografi… Liste uzayıp gidiyor.

    Avantajları
    Diyelim ki bir döngüyü birden fazla iş parçacığı kullanarak optimize etmeyi hedefliyoruz ve dört iş parçacığı örneği oluşturuyoruz. Ancak, iş parçacığı oluşturmak yavaş bir işlemdir ve işlemden sonra tüm iş parçacıklarının tamamlanmasını beklememiz gerekebilir. SIMD ile, iş parçacığı örneği oluşturmaya gerek kalmadan hızı 4 kattan fazla artırabiliriz. SIMD kullanarak optimizasyon yapmak genellikle daha kolay ve daha kullanışlıdır. Bununla birlikte, istenirse vektörleştirilmiş kodu çoklu iş parçacığına da dönüştürebiliriz.

    Bunun şu şekilde çalıştığını hayal edebiliriz:
    SIMD
    ||
    ...

    Çoklu iş
    Parçacığı
    ||
    ...

    Her CPU çekirdeğinin bir VPU'su olduğundan, çoklu iş parçacığı işlemeyi SIMD koduyla birleştirebilir ve kodumuzu önemli ölçüde optimize edebiliriz. Eş zamanlı olarak 4, 8 veya 16 görev gerçekleştirdiğimiz için, potansiyel olarak ThreadCount * SIMDLaneCount'a kadar performans elde edebiliriz ve dalları ortadan kaldırırsak daha da yüksek performans elde edebiliriz. Ayrıca, iki sayıyı çarpıp üçüncü bir sayıyı ekleyen birleşik Çarpma Toplama (FMADD) gibi birleşik komutlar da mevcuttur. Bu, toplama ve çarpma işlemlerini ayrı ayrı yapmaya kıyasla performansı artırabilir.

    SSE: _mm_fmadd_ps(a, b, c) // a * b + c
    NEON: vfmaq_f32(c, a, b) // a * b + c

    Bazı komutlar diğerlerinden daha yavaştır; örneğin, ters karekök alma işlemi karekök alma işleminden daha hızlıdır ve bölme işlemi çarpma işleminden daha yavaştır. Her komutun gecikme süresi ve işlem hızı hakkında ayrıntılı bilgiyi CPU satıcısının dokümanlarında bulabilirsiniz. Ayrıca, bu kısıtlamalar işlemci mimarileri arasında farklılık gösterir. Kodumuzu performans açısından optimize ederken bu faktörleri göz önünde bulundurmak önemlidir.

    Otomatik Vektörizasyon
    Derleyiciler bazı kalıpları tanıyabilir ve kodunuzu vektörleştirebilir, bazen programcıdan daha iyi vektörleştirilmiş kod üretebilir.

    Bu basit kod göz önüne alındığında, optimizasyon bayrakları etkinleştirildiğinde derleyici beklediğimizden çok daha fazla kod üretiyor.
    int Sum(int* arr, int n)
    {
    int res = 0;
    for (int i = 0; i < n; i++)
    res += arr[i];
    return res;
    }

    Üretilen kodu inceleyebiliriz ve eğer hoşumuza gitmezse kendi
    vektörleştirilmiş kodumuzu yazabiliriz.

    eğer istersek bu makroyu kullanarak otomatik vektörleştirmeyi devre dışı bırakabiliriz

    #ifndef AX_NO_UNROLL
    #if defined(__clang__)
    # define AX_NO_UNROLL _Pragma("clang loop unroll(disable)") _Pragma("clang loop vectorize(disable)")
    #elif defined(__GNUC__) >= 8
    # define AX_NO_UNROLL _Pragma("GCC unroll 0")
    #elif defined(_MSC_VER)
    # define AX_NO_UNROLL __pragma(loop(no_vector))
    #else
    # define AX_NO_UNROLL
    #endif
    #endif

    // usage:
    AX_NO_UNROLL while (i < 10)
    {
    // do things
    }

    // with for
    AX_NO_UNROLL for (size_t i = 0; i < 256; i += 32) {
    {
    // do things
    }

    Ayrıca clang'in vektör uzantısını kullanarak birden fazla mimari için otomatik olarak oldukça iyi simd kodu üretebildiğini bilmekte fayda var: https://godbolt.org/z/E1es9qW3f

    Temel Matematik
    işte skaler vektör lerp fonksiyonu:

    Vector3 Lerp(Vector3 a, Vector3 b, float t)
    {
    Vector3 v;
    v.x = a.x + (b.x - a.x) * t;
    v.y = a.y + (b.y - a.y) * t;
    v.z = a.z + (b.z - a.z) * t;
    return v;
    }

    Bu SIMD versiyonudur:

    __m128 VecLerp(__m128 a, __m128 b, float t)
    {
    __m128 aToB = _mm_sub_ps(b, a);
    __m128 progress = _mm_mul_ps(aToB, _mm_set1_ps(t));
    __m128 result = _mm_add_ps(a, progress);
    return result;
    }

    // we can optimize with fused multiply add function:
    __m128 VecLerp(__m128 a, __m128 b, float t)
    {
    return _mm_fmadd_ps(_mm_sub_ps(b, a), _mm_set1_ps(t), a);
    }

    // ARM Neon Version:
    float32x4 VecLerp(float32x4 a, float32x4 b, float t)
    {
    return vfmaq_f32(x, vsubq_f32(b, a), ARMVecSet1(t));
    }
    Ama her seferinde her iki sürümü de yazmak acı verici olabiliyor, bu yüzden bu amaçla makrolar kullandım, makroları kullanmamın bir diğer nedeni de içsel işlevleri soyutlamak için operatör geçersiz kılma veya işlevler kullanırsam, hata ayıklama modunda kod, yönergenin kendisinden daha yavaş olan çağırma yönergesine derlenir ve derleyicinin yapabileceği çok daha fazla iyileştirmeden kaçınır.
    Örnek vermek gerekirse, ARM'nin astc-encoder'ını kullanıyorum, operatör geçersiz kılma içsel işlevlerini yapıyor ve projemi hata ayıklama moduyla derlediğimde çok yavaş oluyor, sahnemdeki tüm dokuları sıkıştırmaya çalıştığımda yarım saatten fazla bekledim, bitmemişti, sonra beklemekten vazgeçtim.
    Ancak serbest bırakma moduyla derlediğimde tüm performans kaybı ortadan kalkıyor ve iki dakika sonra tüm dokular sıkıştırılmıştı. Bu yüzden tüm kodu satır içi hale getirmek için makrolar kullandım.

    ARM Neon ve SSE'yi şu şekilde soyutladım:

    #if defined(AX_SUPPORT_SSE) && !defined(AX_ARM)
    /*//////////////////////////////////////////////////////////////////////////*/
    /* SSE */
    /*//////////////////////////////////////////////////////////////////////////*/
    typedef __m128 vec_t;
    typedef __m128 veci_t;
    typedef __m128i vecu_t;

    #define VecZero() _mm_setzero_ps()
    #define VecOne() _mm_set1_ps(1.0f)
    #define VecSet1(x) _mm_set1_ps(x) /* {x, x, x, x} */
    #define VeciSet1(x) _mm_set1_epi32(x) /* {x, x, x, x} */
    #define VecSet(x, y, z, w) _mm_set_ps(x, y, z, w) /* {w, z, y, x} */
    #define VecSetR(x, y, z, w) _mm_setr_ps(x, y, z, w) /* {x, y, z, w} */
    #define VecLoad(x) _mm_loadu_ps(x) /* unaligned load from x pointer */
    #define VecLoadA(x) _mm_load_ps(x) /* load from x pointer */

    // Arithmetic
    #define VecAdd(a, b) _mm_add_ps(a, b) /* {a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w} */
    #define VecSub(a, b) _mm_sub_ps(a, b) /* {a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w} */
    #define VecMul(a, b) _mm_mul_ps(a, b) /* {a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w} */
    #define VecDiv(a, b) _mm_div_ps(a, b) /* {a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w} */

    #define VecFmadd(a, b, c) _mm_fmadd_ps(a, b, c) /* a * b + c */
    #define VecFmsub(a, b, c) _mm_fmsub_ps(a, b, c) /* a * b - c */
    #define VecHadd(a, b) _mm_hadd_ps(a, b) /* pairwise add (aw+bz, ay+bx, aw+bz, ay+bx) */

    #define VecNeg(a) _mm_sub_ps(_mm_setzero_ps(), a) /* -a */
    #define VecRcp(a) _mm_rcp_ps(a) /* 1.0f / a */
    #define VecSqrt(a) _mm_sqrt_ps(a)

    // Vector Math
    #define VecDot(a, b) _mm_dp_ps(a, b, 0xff) /* SSE4.2 required */
    #define VecDotf(a, b) _mm_cvtss_f32(_mm_dp_ps(a, b, 0xff))
    #define VecNorm(v) _mm_div_ps(v, _mm_sqrt_ps(_mm_dp_ps(v, v, 0xff)))
    #define VecNormEst(v) _mm_mul_ps(_mm_rsqrt_ps(_mm_dp_ps(v, v, 0xff)), v)
    #define VecLenf(v) _mm_cvtss_f32(_mm_sqrt_ss(_mm_dp_ps(v, v, 0xff)))
    #define VecLen(v) _mm_sqrt_ps(_mm_dp_ps(v, v, 0xff))

    // Logical
    #define VecMax(a, b) _mm_max_ps(a, b) /* [max(a.x, b.x), max(a.x, b.x)...] */
    #define VecMin(a, b) _mm_min_ps(a, b) /* [min(a.x, b.x), min(a.x, b.x)...] */

    #define VecCmpGt(a, b) _mm_cmpgt_ps(a, b) /* [a.x > b.x, a.y > b.y...] */
    #define VecCmpGe(a, b) _mm_cmpge_ps(a, b) /* [a.x >= b.x, a.y >= b.y...] */
    #define VecCmpLt(a, b) _mm_cmplt_ps(a, b) /* [a.x < b.x, a.y < b.y...] */
    #define VecCmpLe(a, b) _mm_cmple_ps(a, b) /* [a.x <= b.x, a.y <= b.y...] */
    #define VecMovemask(a) _mm_movemask_ps(a)

    #define VecSelect(V1, V2, Control) _mm_blendv_ps(V1, V2, Control);
    #define VecBlend(a, b, c) _mm_blendv_ps(a, b, c)
    #define VeciBlend(a, b, c) _mm_blendv_ps(a, b, _mm_cvtepi32_ps(c))

    #elif defined(AX_ARM)
    /*//////////////////////////////////////////////////////////////////////////*/
    /* NEON */
    /*//////////////////////////////////////////////////////////////////////////*/

    typedef float32x4_t vec_t;
    typedef uint32x4_t veci_t;
    typedef uint32x4_t vecu_t;

    #define VecZero() vdupq_n_f32(0.0f)
    #define VecOne() vdupq_n_f32(1.0f)
    #define VecNegativeOne() vdupq_n_f32(-1.0f)
    #define VecSet1(x) vdupq_n_f32(x)
    #define VeciSet1(x) vdupq_n_u32(x)
    #define VecSet(x, y, z, w) ARMCreateVec(w, z, y, x) /* -> {w, z, y, x} */
    #define VecSetR(x, y, z, w) ARMCreateVec(x, y, z, w) /* -> {x, y, z, w} */
    #define VecLoad(x) vld1q_f32(x)
    #define VecLoadA(x) vld1q_f32(x)
    #define Vec3Load(x) ARMVector3Load(x)

    // Arithmetic
    #define VecAdd(a, b) vaddq_f32(a, b)
    #define VecSub(a, b) vsubq_f32(a, b)
    #define VecMul(a, b) vmulq_f32(a, b)
    #define VecDiv(a, b) ARMVectorDevide(a, b)

    #define VecFmadd(a, b, c) vfmaq_f32(c, a, b) /* a * b + c */
    #define VecFmsub(a, b, c) vfmsq_f32(a, b, c) /* a * b -c */
    #define VecHadd(a, b) vpaddq_f32(a, b) /* pairwise add (aw+bz, ay+bx, aw+bz, ay+bx) */
    #define VecSqrt(a) vsqrtq_f32(a)
    #define VecRcp(a) vrecpeq_f32(a)
    #define VecNeg(a) vnegq_f32(a)

    // Logical
    #define VecMax(a, b) vmaxq_f32(a, b) /* [max(a.x, b.x), max(a.x, b.x)...] */
    #define VecMin(a, b) vminq_f32(a, b) /* [min(a.x, b.x), min(a.x, b.x)...] */

    #define VecCmpGt(a, b) vcgtq_f32(a, b) /* greater or equal */
    #define VecCmpGe(a, b) vcgeq_f32(a, b) /* greater or equal */
    #define VecCmpLt(a, b) vcltq_f32(a, b) /* less than */
    #define VecCmpLe(a, b) vcleq_f32(a, b) /* less or equal */
    #define VecMovemask(a) ARMVecMovemask(a)

    #define VecSelect(V1, V2, Control) vbslq_f32(Control, V2, V1)
    #define VecBlend(a, b, Control) vbslq_f32(Control, b, a)
    #elif NON_SIMD
    // not showed in this article
    #endif
    0 ...
  • llm modeli eğitilebilir mi

    3.
  • şimdi desen oluşturan c programını türkçe yorumlarla yeniden yazdı, deitel e ek olarak muhasebe ve ekonomi hakkında veriler sunduğunuzda, finansa dair yazılım geliştirebilecek süper bi öğretmene sahip oluyorsunuz, hem de internete hiçbir surette ihtiyacınız kalmıyor!

    https://galeri.uludagsozluk.com/r/2434162/+
    https://galeri.uludagsozluk.com/r/2434163/+

    #include <stdio.h> // Kütüphane içeriği ekleme komutu

    int main() { // Programın başlangıcını belirten ana fonksiyon
    int satir, sutun; // Döngüler için gerekli satır ve sütun değişkenleri

    for(satir = 1; satir <= 5; ++satir) { // Satırları dolaşan döngü (1'den 5'e kadar artacak)
    for(sutun = 1; sutun <= satir; ++sutun) { // Sütunları dolaşan iç döngü (Satır sayısına eşit olana kadar artacak)
    printf("* "); // Yıldız karakteri ve ardından boşluk karakterini yazdıran komut
    }
    printf("\n"); // Satır sonu için newline karakteri yazdıran komut
    }
    return 0; // Programın başarıyla tamamlandığına dair bildirim
    }
    0 ...
  • llm modeli eğitilebilir mi

    1.
  • pdf -> xlsx
    xlsx > csv dönüşümünden sonra,
    1000 sayfayı geçmeyecek şekilde,
    istediğiniz veriyle,
    istediğiniz modeli,
    istediğiniz öğretmeni, yazarı taklit edecek biçimde eğitebilirsiniz.

    deitel stiline hakim c programlama uzmanından birkaç satır:

    https://galeri.uludagsozluk.com/r/2434158/+
    https://galeri.uludagsozluk.com/r/2434159/+

    #include <stdio.h> // Kütüphane içeriği ekleme komutu

    // Verilen bir sayının faktöriyelini hesaplayan recursive (kendi kendini çağıran) fonksiyon
    unsigned long long int faktoriyel(int n) {
    if (n == 0) // Eğer sayı sıfıra eşitse
    return 1; // Faktöriyel hesaplaması için 1 dönüyoruz
    else
    return n * faktoriyel(n - 1); // Değilse, sayıyı bir azaltarak kendi fonksiyonumuzu tekrardan çağırıp sonucuna çarpıyoruz
    }

    int main() {
    int sayi; // Kullanıcı tarafından girilecek olan sayı için bir değişken tanımladık

    // Kullanıcıya bir pozitif tamsayı girmesini söylüyoruz
    printf("Bir pozitif tam sayı giriniz: ");
    scanf("%d", &sayi); // Girilen değeri sayı değişkenine kaydediyoruz

    // Eğer girilen sayı negatifse
    if (sayi < 0) {
    printf("Hata! Negatif bir sayının faktöriyeli mevcut değildir.\n"); // Kullanıcıya hata mesajı gönderiyoruz
    } else {
    unsigned long long int sonuc = faktoriyel(sayi); // Girilen sayının faktöriyelini hesaplayarak sonuç değişkenine kaydediyoruz
    printf("%d sayısının faktöriyeli = %llu\n", sayi, sonuc); // Sonucun ekrana yazdırılması
    }

    return 0; // Programın başarıyla tamamlandığına dair bir değer döndürüyoruz
    }
    0 ...
  • internete ihtiyaç duymayan yapay zeka modeli

    3.
  • ben:
    iki otomobil çarpışıyor, çarpışma sonucunu c programlama diliyle özetler misin, klasik fizik denklemlerini kullanarak, türkçe yaz

    https://galeri.uludagsozluk.com/r/2428088/+

    mistral 22b:
    Tabii ki, iki otomobil çarpışma olayını, klasik fizik denklemlerini kullanarak özetleyebilirim.

    iki otomobil arasındaki çarpışma, bir fiziksel olaydır ve Newton'un ikinci hareket yasasına dayanmaktadır. Bu yasa, bir cismin hareketini değiştiren kuvvetin, cismin kütlesi ve kuvvetin kuvvet vektörünün büyüklüğüne orantılı olduğunu ifade eder.

    Bir çarpışma sırasında, iki otomobil birbirlerine etki uygularlar ve bu etki, Newton'un üçüncü hareket yasasına göre eşit ve ters yönde bir etki uygularlar. Yani, birinci otomobil üzerindeki kuvvet, ikinci otomobil üzerindeki kuvvetin eşit ve tersidir.

    Çarpışma süresi kısadır, bu yüzden impuls denklemi kullanılır. Impuls, bir süre boyunca uygulanan kuvvetin büyüklüğü ile sürenin çarpımıdır. iki otomobil için impuls denklemi şöyledir:

    Impuls1 = Impuls2
    m1v1_son - m1v1_önce = m2v2_önce - m2v2_son

    Burada m1 ve m2 otomobillerin kütlesidir, v1_önce ve v2_önce çarpışma öncesi hızlarıdır, v1_son ve v2_son ise çarpışma sonrası hızlarıdır.

    Bu denklemi kullanarak, çarpışma sonucu otomobillerin yeni hızlarını hesaplayabilirsiniz. Bu, gerçek dünyada gözlemlenen otomobil çarpışmalarının sonuçlarını yaklaşık olarak tahmin etmenize yardımcı olur. Ancak lütfen unutmayın ki, gerçek dünyada çok fazla değişken olabilir ve bu basit model tam olarak doğru sonuçları vermeyebilir.

    #include <stdio.h>

    int main() {
    double m1, m2, v1_önce, v2_önce, v1_son, v2_son;

    printf("Birinci otomobilin kütlesini girin: ");
    scanf("%lf", &m1);

    printf("ikinci otomobilin kütlesini girin: ");
    scanf("%lf", &m2);

    printf("Çarpışma öncesi birinci otomobilin hızını girin: ");
    scanf("%lf", &v1_önce);

    printf("Çarpışma öncesi ikinci otomobilin hızını girin: ");
    scanf("%lf", &v2_önce);

    // Impuls denklemi kullanarak yeni hızları hesapla
    v1_son = ((m1 - m2) * v1_önce + 2 * m2 * v2_önce) / (m1 + m2);
    v2_son = ((m2 - m1) * v2_önce + 2 * m1 * v1_önce) / (m1 + m2);

    printf("Çarpışma sonrası birinci otomobilin hızı: %lf\n", v1_son);
    printf("Çarpışma sonrası ikinci otomobilin hızı: %lf\n", v2_son);

    return 0;
    }
    0 ...
  • tümdengelim

    35.
  • elimdeki makine bile mantığa dair her şeye vakıf olduğunu iddia edenlerden daha akıllı! belki yeterince zeki değil! ama akıllı!

    https://galeri.uludagsozluk.com/r/2421960/+

    #include <iostream>
    #include <string>
    #include <vector>
    using namespace std;

    // Kedi ve Balık Bilmecesi
    bool kediMi(string hayvan) { return hayvan == "Tom"; }
    bool balikYerMi(string hayvan) { return kediMi(hayvan); }

    // Parti ve Dans Bilmecesi
    bool dansEdiyorMu(string kisi) { return kisi == "Ayşe"; }
    bool partideMi(string kisi) { return dansEdiyorMu(kisi); }

    // Yağmur ve Şemsiye Bilmecesi
    bool yagmurYagiyorMu(string zaman) { return zaman == "Bugün"; }
    bool semsiyeAlinirMi(string zaman) { return yagmurYagiyorMu(zaman); }

    // Öğrenci ve Sınav Bilmecesi
    bool caliskanMi(string kisi) { return kisi == "Ali"; }
    bool sinaviGecerMi(string kisi) { return caliskanMi(kisi); }

    // Araba ve Hız Bilmecesi
    bool sporArabaMi(string araba) { return araba == "Ferrari"; }
    bool hizliMi(string araba) { return sporArabaMi(araba); }

    // Özne-yüklem yapısını dizilerle temsil etme
    struct Bilmece {
    string ozne;
    string oncul1;
    string oncul2;
    string sonuc;
    };

    void bilmeceleriCoz() {
    vector<Bilmece> bilmeceler = {
    {"Tom", "Kedi", "Balık yer", "Tom balık yer."},
    {"Ayşe", "Dans ediyor", "Partide", "Ayşe partidedir."},
    {"Bugün", "Yağmur yağıyor", "Şemsiye alınır", "Bugün şemsiye alınır."},
    {"Ali", "Çalışkan", "Sınavı geçer", "Ali sınavı geçer."},
    {"Ferrari", "Spor araba", "Hızlı", "Ferrari hızlıdır."}
    };

    cout << "Mantık Bilmeceleri Çözülüyor...\n" << endl;

    // Kedi ve Balık
    if (kediMi(bilmeceler[0].ozne)) {
    cout << bilmeceler[0].ozne << " bir kedi." << endl;
    if (balikYerMi(bilmeceler[0].ozne)) {
    cout << bilmeceler[0].sonuc << endl;
    }
    }
    cout << endl;

    // Parti ve Dans
    if (dansEdiyorMu(bilmeceler[1].ozne)) {
    cout << bilmeceler[1].ozne << " dans ediyor." << endl;
    if (partideMi(bilmeceler[1].ozne)) {
    cout << bilmeceler[1].sonuc << endl;
    }
    }
    cout << endl;

    // Yağmur ve Şemsiye
    if (yagmurYagiyorMu(bilmeceler[2].ozne)) {
    cout << "Bugün yağmur yağıyor." << endl;
    if (semsiyeAlinirMi(bilmeceler[2].ozne)) {
    cout << bilmeceler[2].sonuc << endl;
    }
    }
    cout << endl;

    // Öğrenci ve Sınav
    if (caliskanMi(bilmeceler[3].ozne)) {
    cout << bilmeceler[3].ozne << " çalışkan." << endl;
    if (sinaviGecerMi(bilmeceler[3].ozne)) {
    cout << bilmeceler[3].sonuc << endl;
    }
    }
    cout << endl;

    // Araba ve Hız
    if (sporArabaMi(bilmeceler[4].ozne)) {
    cout << bilmeceler[4].ozne << " bir spor araba." << endl;
    if (hizliMi(bilmeceler[4].ozne)) {
    cout << bilmeceler[4].sonuc << endl;
    }
    }
    }

    int main() {
    bilmeceleriCoz();
    return 0;
    }
    (resim:#1)
    0 ...
  • doom oyununun fizik mekaniği ray casting

    3.
  • programı ulu dan cpp uzantılı herhangi boş bir dosyaya kopyala yapıştır yapıp, derledikten sonra çalıştırabilirsiniz, sfml ve c++ ın kütüphane, fonksiyon, metot isimleri çok anlaşılır zaten. return döndür. define tanımla, include içine al, input output stream girdi çıktı akış kütüphanesi, sin cos terimleri bildiğiniz lise trigonometrisi, event olay, key pressed tuşa basıldıysa, draw çizdir, clear sil, update güncelle v.s. v.s.

    bu arada derleme komutunuz:
    g++ labirent.cpp -o labirent -lsfml-graphics -lsfml-window -lsfml-system -lGL -lGLU

    ve kaynak kodu:
    #include <SFML/Graphics.hpp>
    #include <cmath>
    #include <iostream>

    #define ekran_genisligi 320
    #define ekran_yuksekligi 200
    #define harita_genisligi 10
    #define harita_yuksekligi 9
    #define blok_boyutu 64

    // Harita tanımı: '#' duvar, boşluk serbest alan, 'P' oyuncu başlangıcı, 'E' çıkış
    char harita[harita_yuksekligi][harita_genisligi + 1] = {
    "##########",
    "#P #",
    "# # ### #",
    "# # #",
    "### # ## #",
    "# # #",
    "# ### ####",
    "# e#",
    "##########"
    };

    // Çıkış konumu
    struct cikis {
    float x, y;
    } cikis = {8.5f, 7.5f}; // Çıkışın merkezi (haritadaki 'e' konumu)

    // Oyuncu yapısı: Konum ve bakış açısı
    struct oyuncu {
    float x, y; // Oyuncunun haritadaki x ve y koordinatları
    float aci; // Oyuncunun bakış açısı (radyan cinsinden)
    } oyuncu = {1.5f, 1.5f, 0.0f}; // Başlangıç: (1.5, 1.5) konumunda, 0 derece açı

    // Renk yapısı: RGB bileşenleri
    struct renk {
    unsigned char kirmizi, yesil, mavi; // Renk değerleri (0-255)
    };
    // Zemin, tavan ve duvarlar için renk tanımları
    renk zemin_rengi = {50, 50, 50}; // Gri zemin
    renk tavan_rengi = {100, 100, 100}; // Açık gri tavan
    renk acik_sari = {255, 255, 150}; // Yakın mesafe duvar rengi
    renk sari = {255, 255, 0}; // Orta mesafe duvar rengi
    renk kirmizi = {255, 0, 0}; // Çıkışa yakın duvar rengi

    // Oyuncunun çıkışa olan mesafesini hesaplayan fonksiyon
    float cikis_mesafesi_hesapla() {
    float dx = oyuncu.x - cikis.x;
    float dy = oyuncu.y - cikis.y;
    return sqrt(dx * dx + dy * dy); // Öklid mesafesi
    }

    // Mesafeye göre renk geçişi hesaplayan fonksiyon (çıkış mesafesine bağlı)
    renk mesafeye_gore_renk_hesapla(float duvara_mesafe) {
    renk sonuc; // Dönecek renk değeri
    float cikis_mesafesi = cikis_mesafesi_hesapla(); // Oyuncunun çıkışa mesafesi
    float maksimum_cikis_mesafesi = 10.0f; // Çıkış etkisinin maksimum mesafesi
    float normalize_cikis_mesafesi = cikis_mesafesi / maksimum_cikis_mesafesi; // 0-1 aralığına ölçekle
    if (normalize_cikis_mesafesi > 1.0f) normalize_cikis_mesafesi = 1.0f; // 1'i aşarsa sınırla

    float maksimum_mesafe = 20.0f; // Görüşün maksimum mesafesi
    float normalize_duvar_mesafesi = duvara_mesafe / maksimum_mesafe; // Duvar mesafesini ölçekle
    if (normalize_duvar_mesafesi > 1.0f) normalize_duvar_mesafesi = 1.0f;

    // Çıkışa yakınlık ve duvar mesafesine göre renk geçişi
    if (normalize_cikis_mesafesi < 0.5f) { // Çıkışa yakın: Sarı -> Kırmızı geçişi
    float t = normalize_cikis_mesafesi * 2.0f; // 0-1 aralığına ölçekle
    sonuc.kirmizi = sari.kirmizi + (kirmizi.kirmizi - sari.kirmizi) * (1.0f - t);
    sonuc.yesil = sari.yesil + (kirmizi.yesil - sari.yesil) * (1.0f - t);
    sonuc.mavi = sari.mavi + (kirmizi.mavi - sari.mavi) * (1.0f - t);
    } else { // Çıkıştan uzak: Açık sarı -> Sarı geçişi
    float t = normalize_duvar_mesafesi; // Duvar mesafesine bağlı geçiş
    sonuc.kirmizi = acik_sari.kirmizi + (sari.kirmizi - acik_sari.kirmizi) * t;
    sonuc.yesil = acik_sari.yesil + (sari.yesil - acik_sari.yesil) * t;
    sonuc.mavi = acik_sari.mavi + (sari.mavi - acik_sari.mavi) * t;
    }
    return sonuc; // Hesaplanan rengi döndür
    }

    // Kendi raycasting motorumuz: Işınları gönderip görüntüyü oluşturur
    void isinlari_gonder(sf::Uint8* pikseller) {
    float gorus_alani = M_PI / 3; // Görüş alanı: 60 derece (radyan)

    // Ekranın her sütunu için bir ışın gönder
    for (int x = 0; x < ekran_genisligi; x++) {
    // Bu sütun için ışın açısını hesapla: Oyuncu açısı ± görüş alanının yarısı
    float isin_acisi = oyuncu.aci - (gorus_alani / 2) + (x * gorus_alani) / ekran_genisligi;
    float duvara_mesafe = 0; // Işının duvara olan mesafesi
    bool duvara_carpti = false; // Duvara çarpıp çarpmadığını kontrol et
    float goz_x = cos(isin_acisi); // Işının x yönü (kosinüs)
    float goz_y = sin(isin_acisi); // Işının y yönü (sinüs)

    // Duvara çarpana veya maksimum mesafeye ulaşana kadar ışını ilerlet
    while (!duvara_carpti && duvara_mesafe < 20) {
    duvara_mesafe += 0.05f; // Küçük adımlarla ilerle (hassasiyet için)
    int test_x = (int)(oyuncu.x + goz_x * duvara_mesafe); // Test edilecek x koordinatı
    int test_y = (int)(oyuncu.y + goz_y * duvara_mesafe); // Test edilecek y koordinatı

    // Harita sınırlarını kontrol et
    if (test_x < 0 || test_x >= harita_genisligi || test_y < 0 || test_y >= harita_yuksekligi) {
    duvara_carpti = true; // Sınırlara çarpılırsa duvar kabul et
    duvara_mesafe = 20; // Maksimum mesafeye sabitle
    }
    // Haritada duvara çarpıp çarpmadığını kontrol et
    else if (harita[test_y][test_x] == '#') {
    duvara_carpti = true; // Duvarsa çarpma tespit edildi
    }
    }

    // Duvar yüksekliğini hesapla (perspektif için açıyı düzelt)
    int duvar_yuksekligi = (int)(ekran_yuksekligi / (duvara_mesafe * cos(isin_acisi - oyuncu.aci)));
    if (duvar_yuksekligi > ekran_yuksekligi) duvar_yuksekligi = ekran_yuksekligi; // Ekranı aşmasın

    // Tavan ve zemin sınırlarını belirle
    int tavan = (ekran_yuksekligi / 2) - (duvar_yuksekligi / 2); // Tavanın üst sınırı
    int zemin = tavan + duvar_yuksekligi; // Zemin başlangıcı

    // Mesafeye bağlı duvar rengini hesapla
    renk duvar_rengi = mesafeye_gore_renk_hesapla(duvara_mesafe);

    // Sütunun her pikselini doldur
    for (int y = 0; y < ekran_yuksekligi; y++) {
    int piksel_indeksi = (y * ekran_genisligi + x) * 4; // Pikselin bellekteki konumu (RGBA)
    if (y < tavan) { // Tavan alanı
    pikseller[piksel_indeksi] = tavan_rengi.kirmizi; // Kırmızı bileşen
    pikseller[piksel_indeksi + 1] = tavan_rengi.yesil; // Yeşil bileşen
    pikseller[piksel_indeksi + 2] = tavan_rengi.mavi; // Mavi bileşen
    pikseller[piksel_indeksi + 3] = 255; // Opaklık (alpha)
    }
    else if (y >= tavan && y < zemin) { // Duvar alanı
    pikseller[piksel_indeksi] = duvar_rengi.kirmizi; // Kırmızı bileşen
    pikseller[piksel_indeksi + 1] = duvar_rengi.yesil; // Yeşil bileşen
    pikseller[piksel_indeksi + 2] = duvar_rengi.mavi; // Mavi bileşen
    pikseller[piksel_indeksi + 3] = 255; // Opaklık (alpha)
    }
    else { // Zemin alanı
    pikseller[piksel_indeksi] = zemin_rengi.kirmizi; // Kırmızı bileşen
    pikseller[piksel_indeksi + 1] = zemin_rengi.yesil; // Yeşil bileşen
    pikseller[piksel_indeksi + 2] = zemin_rengi.mavi; // Mavi bileşen
    pikseller[piksel_indeksi + 3] = 255; // Opaklık (alpha)
    }
    }
    }
    }

    // Ana program
    int main() {
    // Oyun penceresini oluştur
    sf::RenderWindow pencere(sf::VideoMode(ekran_genisligi, ekran_yuksekligi), "90'lar raycasting labirenti");
    pencere.setFramerateLimit(30); // Kare hızını 30 FPS ile sınırla

    // Piksel verilerini tutacak dizi
    sf::Uint8* pikseller = new sf::Uint8[ekran_genisligi * ekran_yuksekligi * 4];
    sf::Texture doku; // Ekran görüntüsünü tutacak doku
    doku.create(ekran_genisligi, ekran_yuksekligi); // Dokuyu ekran boyutunda oluştur
    sf::Sprite goruntu(doku); // Dokuyu ekrana çizecek sprite

    // Oyun döngüsü
    while (pencere.isOpen()) {
    sf::Event olay; // Olayları işlemek için yapı
    while (pencere.pollEvent(olay)) {
    if (olay.type == sf::Event::Closed) pencere.close(); // Pencere kapatılırsa çık
    }

    float hareket_hizi = 0.1f; // Oyuncunun hareket hızı
    float donus_hizi = 0.05f; // Oyuncunun dönüş hızı

    // ileri hareket
    if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up)) {
    float yeni_x = oyuncu.x + cos(oyuncu.aci) * hareket_hizi; // Yeni x konumu
    float yeni_y = oyuncu.y + sin(oyuncu.aci) * hareket_hizi; // Yeni y konumu
    if (harita(int)yeni_y](int)yeni_x] != '#') { // Çarpışma yoksa hareket et
    oyuncu.x = yeni_x;
    oyuncu.y = yeni_y;
    }
    }
    // Geri hareket
    if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down)) {
    float yeni_x = oyuncu.x - cos(oyuncu.aci) * hareket_hizi; // Yeni x konumu
    float yeni_y = oyuncu.y - sin(oyuncu.aci) * hareket_hizi; // Yeni y konumu
    if (harita(int)yeni_y](int)yeni_x] != '#') { // Çarpışma yoksa hareket et
    oyuncu.x = yeni_x;
    oyuncu.y = yeni_y;
    }
    }
    // Sola dönüş
    if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left)) {
    oyuncu.aci -= donus_hizi; // Açıyı saat yönünün tersine çevir
    }
    // Sağa dönüş
    if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right)) {
    oyuncu.aci += donus_hizi; // Açıyı saat yönüne çevir
    }

    // Piksel dizisini sıfırla (temizle)
    for (int i = 0; i < ekran_genisligi * ekran_yuksekligi * 4; i++) {
    pikseller[i] = 0;
    }

    // Raycasting ile görüntüyü oluştur
    isinlari_gonder(pikseller);

    // Dokuyu güncelle ve ekrana çiz
    doku.update(pikseller);
    pencere.clear(); // Ekranı temizle
    pencere.draw(goruntu); // Sprite'ı çiz
    pencere.display(); // Ekranı göster
    }

    // Belleği temizle
    delete[] pikseller;
    return 0;
    }
    0 ...
  • belirsiz boşluğa inanan ateist

    1.
  • varoluşa dair hiçbir şeye değer vermeyen nihilist olduğu halde, varlık mevzubahis olduğunda var olmayan bir şeye inanır, kendi de neye inandığını bilmiyordur. dogmatiktir.

    uzay, belirsiz bir boşluk olmadığı gibi, boş hiç değildir!

    transistörlerin ve transistör tabanlı mantık devrelerinin kusursuz etkileşiminden beslenen çok basit bir program bile bu gerçeği ispatlayabilir.

    1000x1000x1000 piksel boyutlarında bir uzay hayal edin,
    10x10x10 piksel boyutlu,
    26 köşesinde özdeşleriyle kesişen küplerle yaratılsın!

    çıktı:
    https://galeri.uludagsozluk.com/r/2421183/+

    kaynak kodu:
    #include <SFML/Graphics.hpp>
    #include <vector>

    // Ekran boyutlarını tanımlayan sabitler
    const int PENCERE_GENISLIGI = 1000; // Pencerenin genişliği (piksel)
    const int PENCERE_YUKSEKLIGI = 1000; // Pencerenin yüksekliği (piksel)

    // Küp ve uzay parametreleri
    const float KUP_BOYUTU = 100.0f; // Her küpün kenar uzunluğu (1000 / 10 = 100 piksel)
    const int IZGARA_BOYUTU = 10; // 10x10x10 küp ızgarası

    // 3D noktaları temsil eden yapı
    struct Nokta3B {
    float x, y, z; // 3D uzayda x, y, z koordinatları
    };

    // 3D noktayı 2D noktaya dönüştüren fonksiyon (izometrik projeksiyon)
    sf::Vector2f izdusu_hesapla(const Nokta3B& nokta) {
    // izometrik projeksiyon: 3D koordinatları 2D ekrana yansıtır
    float izoX = (nokta.x - nokta.y) * 0.707f; // 45 derece dönüşüm için cos(45°)
    float izoY = ((nokta.x + nokta.y) * 0.3535f) - (nokta.z * 0.5f); // z eksenini yukarı taşıma
    // Ekranın ortasına hizala
    izoX += PENCERE_GENISLIGI / 2.0f;
    izoY += PENCERE_YUKSEKLIGI / 2.0f;
    return sf::Vector2f(izoX, izoY);
    }

    // Küpün köşe noktalarını tanımlayan fonksiyon
    std::vector<Nokta3B> kup_koseleri_al(float x, float y, float z, float boyut) {
    // Küpün 8 köşesinin 3D koordinatlarını döndürür
    return {
    {x, y, z},
    {x + boyut, y, z},
    {x + boyut, y + boyut, z},
    {x, y + boyut, z},
    {x, y, z + boyut},
    {x + boyut, y, z + boyut},
    {x + boyut, y + boyut, z + boyut},
    {x, y + boyut, z + boyut}
    };
    }

    // Küpün kenarlarını çizen fonksiyon
    void kup_kenarlari_ekle(sf::VertexArray& cizgiler, const std::vector<Nokta3B>& koseler) {
    // Alt yüzey çizgilerini ekler (köşeler 0-1-2-3)
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[0]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[1]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[1]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[2]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[2]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[3]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[3]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[0]), sf::Color::White));

    // Üst yüzey çizgilerini ekler (köşeler 4-5-6-7)
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[4]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[5]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[5]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[6]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[6]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[7]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[7]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[4]), sf::Color::White));

    // Dikey kenarları ekler (0-4, 1-5, 2-6, 3-7)
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[0]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[4]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[1]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[5]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[2]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[6]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[3]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[7]), sf::Color::White));
    }

    // Ana program fonksiyonu
    int main() {
    // Grafik penceresini oluşturur
    sf::RenderWindow pencere(sf::VideoMode(PENCERE_GENISLIGI, PENCERE_YUKSEKLIGI), "3B Kup Izgarasi");
    pencere.setFramerateLimit(60); // Çizim hızını saniyede 60 kare ile sınırlar

    // Çizgileri saklamak için vertex dizisi
    sf::VertexArray cizgiler(sf::Lines, 0);

    // 10x10x10 küp ızgarasını oluştur
    for (int x = 0; x < IZGARA_BOYUTU; ++x) {
    for (int y = 0; y < IZGARA_BOYUTU; ++y) {
    for (int z = 0; z < IZGARA_BOYUTU; ++z) {
    // Küpün başlangıç koordinatlarını hesaplar
    float konumX = x * KUP_BOYUTU;
    float konumY = y * KUP_BOYUTU;
    float konumZ = z * KUP_BOYUTU;
    // Küpün köşe noktalarını alır
    auto koseler = kup_koseleri_al(konumX, konumY, konumZ, KUP_BOYUTU);
    // Küpün kenarlarını çizer
    kup_kenarlari_ekle(cizgiler, koseler);
    }
    }
    }

    // Pencere açık olduğu sürece çalışır
    while (pencere.isOpen()) {
    sf::Event olay;
    // Olayları işler (örneğin, pencereyi kapatma)
    while (pencere.pollEvent(olay)) {
    if (olay.type == sf::Event::Closed)
    pencere.close();
    }

    // Pencereyi siyah renkle temizler
    pencere.clear(sf::Color::Black);

    // Tüm küp kenarlarını çizer
    pencere.draw(cizgiler);

    // Pencereyi ekranda günceller
    pencere.display();
    }

    return 0; // Programın başarılı şekilde sonlandığını belirtir
    }
    0 ...
  • sonsuzluk

    151.
  • Hani nerde belirsiz boşluk? kullandığınız kelimenin matematikte, mantıkta ve maddi dünyada hiçbir karşılığı yok oğlum!

    https://galeri.uludagsozluk.com/r/2421182/+

    belirsiz boşluk olarak görülen uzayın hiç de belirsiz ve boş olmadığını ispatlayan kaynak kodu:
    #include <SFML/Graphics.hpp>
    #include <vector>

    // Ekran boyutlarını tanımlayan sabitler
    const int PENCERE_GENISLIGI = 1000; // Pencerenin genişliği (piksel)
    const int PENCERE_YUKSEKLIGI = 1000; // Pencerenin yüksekliği (piksel)

    // Küp ve uzay parametreleri
    const float KUP_BOYUTU = 100.0f; // Her küpün kenar uzunluğu (1000 / 10 = 100 piksel)
    const int IZGARA_BOYUTU = 10; // 10x10x10 küp ızgarası

    // 3D noktaları temsil eden yapı
    struct Nokta3B {
    float x, y, z; // 3D uzayda x, y, z koordinatları
    };

    // 3D noktayı 2D noktaya dönüştüren fonksiyon (izometrik projeksiyon)
    sf::Vector2f izdusu_hesapla(const Nokta3B& nokta) {
    // izometrik projeksiyon: 3D koordinatları 2D ekrana yansıtır
    float izoX = (nokta.x - nokta.y) * 0.707f; // 45 derece dönüşüm için cos(45°)
    float izoY = ((nokta.x + nokta.y) * 0.3535f) - (nokta.z * 0.5f); // z eksenini yukarı taşıma
    // Ekranın ortasına hizala
    izoX += PENCERE_GENISLIGI / 2.0f;
    izoY += PENCERE_YUKSEKLIGI / 2.0f;
    return sf::Vector2f(izoX, izoY);
    }

    // Küpün köşe noktalarını tanımlayan fonksiyon
    std::vector<Nokta3B> kup_koseleri_al(float x, float y, float z, float boyut) {
    // Küpün 8 köşesinin 3D koordinatlarını döndürür
    return {
    {x, y, z},
    {x + boyut, y, z},
    {x + boyut, y + boyut, z},
    {x, y + boyut, z},
    {x, y, z + boyut},
    {x + boyut, y, z + boyut},
    {x + boyut, y + boyut, z + boyut},
    {x, y + boyut, z + boyut}
    };
    }

    // Küpün kenarlarını çizen fonksiyon
    void kup_kenarlari_ekle(sf::VertexArray& cizgiler, const std::vector<Nokta3B>& koseler) {
    // Alt yüzey çizgilerini ekler (köşeler 0-1-2-3)
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[0]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[1]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[1]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[2]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[2]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[3]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[3]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[0]), sf::Color::White));

    // Üst yüzey çizgilerini ekler (köşeler 4-5-6-7)
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[4]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[5]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[5]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[6]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[6]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[7]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[7]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[4]), sf::Color::White));

    // Dikey kenarları ekler (0-4, 1-5, 2-6, 3-7)
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[0]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[4]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[1]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[5]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[2]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[6]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[3]), sf::Color::White));
    cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[7]), sf::Color::White));
    }

    // Ana program fonksiyonu
    int main() {
    // Grafik penceresini oluşturur
    sf::RenderWindow pencere(sf::VideoMode(PENCERE_GENISLIGI, PENCERE_YUKSEKLIGI), "3B Kup Izgarasi");
    pencere.setFramerateLimit(60); // Çizim hızını saniyede 60 kare ile sınırlar

    // Çizgileri saklamak için vertex dizisi
    sf::VertexArray cizgiler(sf::Lines, 0);

    // 10x10x10 küp ızgarasını oluştur
    for (int x = 0; x < IZGARA_BOYUTU; ++x) {
    for (int y = 0; y < IZGARA_BOYUTU; ++y) {
    for (int z = 0; z < IZGARA_BOYUTU; ++z) {
    // Küpün başlangıç koordinatlarını hesaplar
    float konumX = x * KUP_BOYUTU;
    float konumY = y * KUP_BOYUTU;
    float konumZ = z * KUP_BOYUTU;
    // Küpün köşe noktalarını alır
    auto koseler = kup_koseleri_al(konumX, konumY, konumZ, KUP_BOYUTU);
    // Küpün kenarlarını çizer
    kup_kenarlari_ekle(cizgiler, koseler);
    }
    }
    }

    // Pencere açık olduğu sürece çalışır
    while (pencere.isOpen()) {
    sf::Event olay;
    // Olayları işler (örneğin, pencereyi kapatma)
    while (pencere.pollEvent(olay)) {
    if (olay.type == sf::Event::Closed)
    pencere.close();
    }

    // Pencereyi siyah renkle temizler
    pencere.clear(sf::Color::Black);

    // Tüm küp kenarlarını çizer
    pencere.draw(cizgiler);

    // Pencereyi ekranda günceller
    pencere.display();
    }

    return 0; // Programın başarılı şekilde sonlandığını belirtir
    }

    derleme ve çalıştırma komutları:
    g++ kup_izgarasi.cpp -o kup_izgarasi -lsfml-graphics -lsfml-window -lsfml-system
    0 ...
  • izometrik oyunda mouse la seçilen kareye gelen npc

    1.
  • https://galeri.uludagsozluk.com/r/2399832/+
    1920x1080 piksel genişliğinde, siyah arkaplanda bir penceremiz olsun, bunu 15x15 piksellik kutularla karolara dönüştürüp, ızgara grid düzeni yaratalım. çizgiler 1 piksel genişliğinde beyaz olucak.

    grid düzleminde, mouse cursor, üzerinde olduğu her karoyu kırmızıya,
    yatay ve dikey eksende taradığı tüm karoları da sarıya boyasın.

    ekranda rastgele bir karoyu yeşil seçelim.

    ve bu yeşil alanın,
    mouse cursor un olduğu kırmızı karoyu her tıkladığımızda,
    en kısa yolu nasıl seçtiğini merak ediyorsanız eğer,
    cevabı çok basit.

    path-finder algoritması!

    #include <SFML/Graphics.hpp>
    #include <vector>
    #include <cmath>

    int main() {
    // 1920x1080 window
    sf::RenderWindow window(sf::VideoMode(1920, 1080), "15x15 Grid with Mouse Highlight and Character");
    window.setFramerateLimit(60);

    // Tile size
    const int tileSize = 15;
    const int tilesX = 1920 / tileSize; // 128 tiles
    const int tilesY = 1080 / tileSize; // 72 tiles

    // Grid lines
    sf::VertexArray lines(sf::Lines);
    for (int x = 0; x <= tilesX; x++) {
    lines.append(sf::Vertex(sf::Vector2f(x * tileSize, 0), sf::Color::White));
    lines.append(sf::Vertex(sf::Vector2f(x * tileSize, 1080), sf::Color::White));
    }
    for (int y = 0; y <= tilesY; y++) {
    lines.append(sf::Vertex(sf::Vector2f(0, y * tileSize), sf::Color::White));
    lines.append(sf::Vertex(sf::Vector2f(1920, y * tileSize), sf::Color::White));
    }

    // Character (green tile) starting position (random)
    srand(static_cast<unsigned>(time(0)));
    int charX = rand() % tilesX; // Random X position
    int charY = rand() % tilesY; // Random Y position
    sf::RectangleShape character(sf::Vector2f(tileSize, tileSize));
    character.setFillColor(sf::Color::Green);

    // Target position for the character (where the mouse clicks)
    int targetX = charX;
    int targetY = charY;

    // Path history (to paint with transparent blue)
    std::vector<sf::Vector2i> path;
    sf::Color transparentBlue(0, 0, 255, 100); // Transparent blue (alpha=100)

    // Game loop
    while (window.isOpen()) {
    sf::Event event;
    while (window.pollEvent(event)) {
    if (event.type == sf::Event::Closed)
    window.close();
    // Left mouse button click to set target
    if (event.type == sf::Event::MouseButtonPressed && event.mouseButton.button == sf::Mouse::Left) {
    sf::Vector2i mousePos = sf::Mouse::getPosition(window);
    targetX = mousePos.x / tileSize;
    targetY = mousePos.y / tileSize;
    path.clear(); // Clear previous path
    }
    }

    // Get mouse position
    sf::Vector2i mousePos = sf::Mouse::getPosition(window);
    int mouseX = mousePos.x / tileSize;
    int mouseY = mousePos.y / tileSize;

    // Move character toward target (simple straight-line movement)
    if (charX != targetX || charY != targetY) {
    // Add current position to path
    path.push_back(sf::Vector2i(charX, charY));

    // Move X direction
    if (charX < targetX) charX++;
    else if (charX > targetX) charX--;

    // Move Y direction
    if (charY < targetY) charY++;
    else if (charY > targetY) charY--;
    }

    // Clear window
    window.clear(sf::Color::Black);

    // Draw transparent yellow for row and column highlights
    sf::RectangleShape tile(sf::Vector2f(tileSize, tileSize));
    sf::Color transparentYellow(255, 255, 0, 100);
    for (int x = 0; x < tilesX; x++) {
    tile.setPosition(x * tileSize, mouseY * tileSize);
    tile.setFillColor(transparentYellow);
    window.draw(tile);
    }
    for (int y = 0; y < tilesY; y++) {
    tile.setPosition(mouseX * tileSize, y * tileSize);
    tile.setFillColor(transparentYellow);
    window.draw(tile);
    }

    // Draw the path (transparent blue)
    for (const auto& pos : path) {
    tile.setPosition(pos.x * tileSize, pos.y * tileSize);
    tile.setFillColor(transparentBlue);
    window.draw(tile);
    }

    // Draw character (green tile)
    character.setPosition(charX * tileSize, charY * tileSize);
    window.draw(character);

    // Draw mouse-highlighted tile (red)
    tile.setPosition(mouseX * tileSize, mouseY * tileSize);
    tile.setFillColor(sf::Color::Red);
    window.draw(tile);

    // Draw grid lines on top
    window.draw(lines);

    // Update window
    window.display();
    }

    return 0;
    }
    0 ...
  • 1 milyar basamaklı rastgele sayıları seçip çarpmak

    2.
  • c de,
    büyük çarpımlarla hesaplamalar gerçekleştirmek için,
    #include <gmp.h>
    önişlemci direktifiyle,
    gmp kütüphanesini çağırıyoruz.

    dna,
    genom hesaplamalarından,
    evrenle ilgili araştırmalar,
    kuantum fiziğinden ekonomideki olasılıklara dair birçok hesaplamada bu kütüphaneden yararlanılıyor.
    0 ...
  • 1 milyar basamaklı rastgele sayıları seçip çarpmak

    1.
  • mümkündür,
    aşağıdaki basit program vesilesiyle:
    ilk prompt:
    gedit buyukcarpim.c

    kaynak kodu:
    #include <stdio.h>
    #include <gmp.h>
    #include <stdlib.h>
    #include <time.h>

    // Rastgele 1 milyar haneli bir sayı üreten fonksiyon
    void generate_random_number(mpz_t num, int digits) {
    char *str = malloc(digits + 1);
    str[0] = '1' + (rand() % 9); // ilk rakam 0 olamaz
    for (int i = 1; i < digits; i++) {
    str[i] = '0' + (rand() % 10);
    }
    str[digits] = '\0';
    mpz_set_str(num, str, 10);
    free(str);
    }

    int main() {
    mpz_t num1, num2, result;
    mpz_inits(num1, num2, result, NULL);

    srand(time(NULL)); // Rastgele sayı üreteci için tohum

    // 1 milyar haneli iki rastgele sayı üret
    generate_random_number(num1, 1000000000);
    generate_random_number(num2, 1000000000);

    // Sayıları çarp
    mpz_mul(result, num1, num2);

    // Sonuçları ekrana yazdır
    gmp_printf("Sayı 1: %Zd\n\n", num1);
    gmp_printf("Sayı 2: %Zd\n\n", num2);
    gmp_printf("Çarpım Sonucu: %Zd\n", result);

    // Belleği temizle
    mpz_clears(num1, num2, result, NULL);

    return 0;
    }

    derle:
    gcc -o buyukcarpim buyukcarpim.c -lgmp

    çalıştır:
    /buyukcarpim
    0 ...
  • mantık

    138.
  • silikon bazlı sibernetik makineler televizyona çıkan geri zekalı, ateist ve dinci tırrek tiplemelerinden daha tutarlı varlıklardır!

    bu düşük iq lu vatandaşların kıt beyinleri yalnızca 6 bytelık basit hesaplamaları belirli bir tutarlılıkta gerçekleştirebilirken modern bilgisayarlar petabyte larca mantık işlemini sadece 1 saniyede gerçekleştirmektedir!
    https://galeri.uludagsozluk.com/r/2381169/+
    #include <stdio.h>

    // Tüm canlılar ölümlüdür (genel kural)
    int olumlu_mu(int canli) {
    return 1; // Canlıysa, ölümlüdür (1: Evet)
    }

    int main() {
    int ahmet_canli = 1; // Ahmet bir canlıdır (1)

    // Tümdengelimle:
    // Eğer Ahmet bir canlıysa, o zaman Ahmet ölümlüdür.
    if (ahmet_canli) { // Ahmet canlı
    printf("Ahmet ölümlüdür.\n"); // Sonuç tümdengelimle çıkarıldı
    }

    return 0;
    }
    0 ...
  • mantık

    136.
  • tüm x86_64 mimarili amd cpu larda intel 8086 dan beri, mantıksal işlemleri gerçekleştirmek üzere tasarlanmış aritmetik mantık birimleri bulunmaktadır.

    bakınız, alu!

    gcc derleyicimiz, bu kaynak kodunu doğrudan registerlar üzerinde çalışan komut setleriyle obje dosyasına, ardından çalıştırılabilir makine diline çevirirken, ilgili mantık işlemleri de alu ya iletiliyor!

    bu sayede tümdengelime özgü milyonlarca akıl yürütme işlemini matematiğe indirgeyebiliyor ve trilyonlarca mantıksal hesaplama yapabiliyoruz!

    #include <iostream>

    int main() {
    // Sabit değerlerle değişken tanımları
    int ahmetYas = 50; // Ahmet'in yaşı
    int elifYas = 5; // Elif'in yaşı
    bool savasCikti = true; // Savaşın çıktığı bilgisi
    bool elifOldu = true; // Elif'in öldüğü bilgisi
    bool havaKapali;

    // Hava durumu mantığı (Hava kapalı ancak ve ancak savaş çıktı ve Elif öldü)
    havaKapali = savasCikti && elifOldu;

    // Yaş doğrulaması
    if (elifYas == ahmetYas / 5) {
    std::cout << "Yaşlar doğru." << std::endl;
    } else {
    std::cout << "Yaşlar doğru değil!" << std::endl;
    }

    // Elif'in durumu ve sonuç
    if (havaKapali) {
    std::cout << "Hava kapalı. Bu durumda Elif ölmüştür." << std::endl;
    } else {
    std::cout << "Elif hayatta." << std::endl;
    }

    return 0;
    }
    0 ...
  • assembly

    39.
  • iki integeri toplayan basit bir kaynak kodu düşünün:

    #include <stdio.h>

    int main() {
    int sayi1 = 34343;
    int sayi2 = 823482;
    int toplam = sayi1 + sayi2;

    printf("Toplam: %d\n", toplam);

    return 0;
    }

    ilk aşamada Preprocessing de, #include <stdio.h> ifadesiyle belirttiğimiz stio.h (input output header ı başlığı ) uzantılı dosya bu kaynak kodun içine entegre edilir.
    https://galeri.uludagsozluk.com/r/2381135/+

    önişleme safhasından geçen kod, assembly edilerek obje dosyasına dönüştürülür.

    .file "program.c"
    .text
    .section .rodata
    .LC0:
    .string "Toplam: %d\n"
    .text
    .globl main
    .type main, @function
    main:
    .LFB0:
    .cfi_startproc
    endbr64
    pushq %rbp
    .cfi_def_cfa_offset 16
    .cfi_offset 6, -16
    movq %rsp, %rbp
    .cfi_def_cfa_register 6
    subq $16, %rsp
    movl $34343, -12(%rbp)
    movl $823482, -8(%rbp)
    movl -12(%rbp), %edx
    movl -8(%rbp), %eax
    addl %edx, %eax
    movl %eax, -4(%rbp)
    movl -4(%rbp), %eax
    movl %eax, %esi
    leaq .LC0(%rip), %rax
    movq %rax, %rdi
    movl $0, %eax
    call printf@PLT
    movl $0, %eax
    leave
    .cfi_def_cfa 7, 8
    ret
    .cfi_endproc
    .LFE0:
    .size main, .-main
    .ident "GCC: (Ubuntu 13.2.0-23ubuntu4) 13.2.0"
    .section .note.GNU-stack,"",@progbits
    .section .note.gnu.property,"a"
    .align 8
    .long 1f - 0f
    .long 4f - 1f
    .long 5
    0:
    .string "GNU"
    1:
    .align 8
    .long 0xc0000002
    .long 3f - 2f
    2:
    .long 0x3
    3:
    .align 8
    4:

    bu programın düşük ve yüksek voltaj değerleriyle elektrik sinyallerine dönüştürülmeden önceki son halidir.
    0 ...
  • insan ömrünü 1 saniyeye sığdıran makina

    2.
  • meğerse bu da güncel hızı sunmayan bir programmış! çoklu iş parçacığıyla 1 saniyede 1 den 50 milyara kadar olan tüm sayıları artışık biçimde saydırdım! 50 tane adam öldü gitti yani! en iyi ihtimali varsayıp 25 diyelim! çift threadde, tek çekirdekte 10 milyar!

    https://galeri.uludagsozluk.com/r/2381024/+

    buyrun kaynak kod:
    #include <stdio.h>
    #include <pthread.h>
    #include <sys/time.h>

    #define MAX_COUNT 50000000000LL // long long int türü için LL ekledik
    #define THREAD_COUNT 24 // 24 çekirdek için iş parçacığı sayısı

    // işlem yapılacak fonksiyon
    void* count_numbers(void* arg) {
    long long start = *((long long*)arg);
    long long end = start + (MAX_COUNT / THREAD_COUNT);

    for (long long i = start; i < end; i++) {
    // Her sayıyı yazdırmıyoruz çünkü çok büyük veri olur, ancak isterseniz yazdırabilirsiniz
    // printf("%lld\n", i);
    }

    return NULL;
    }

    int main() {
    struct timeval start_time, end_time;
    double elapsed_time;

    pthread_t threads[THREAD_COUNT];
    long long start_values[THREAD_COUNT];

    // Başlangıç zamanını al
    gettimeofday(&start_time, NULL);

    // iş parçacıklarını başlat
    for (int i = 0; i < THREAD_COUNT; i++) {
    start_values[i] = (MAX_COUNT / THREAD_COUNT) * i; // Her iş parçacığına başlangıç noktası
    pthread_create(&threads[i], NULL, count_numbers, (void*)&start_values[i]);
    }

    // iş parçacıklarının bitmesini bekle
    for (int i = 0; i < THREAD_COUNT; i++) {
    pthread_join(threads[i], NULL);
    }

    // Bitiş zamanını al
    gettimeofday(&end_time, NULL);

    // Geçen süreyi hesapla
    elapsed_time = (end_time.tv_sec - start_time.tv_sec) + (end_time.tv_usec - start_time.tv_usec) / 1000000.0;

    // Sonucu yazdır
    printf("1'den %lld'ye kadar sayma işlemi %.6f saniye sürdü.\n", MAX_COUNT, elapsed_time);

    return 0;
    }
    0 ...
  • ilk 100 milyar sayıda kaç asal var

    4.
  • intel core i3 (dual core) kullananlar sakın denemesin. thread count kısmında 24 yerine 2 yazıp, bekleyin! işlem belki 2025 e tamamlanır!

    #include <iostream>
    #include <cmath>
    #include <omp.h>
    #include <gmp.h>

    #define LIMIT 100000000000ULL // ilk 100 milyar sayı
    #define THREAD_COUNT 24 // 24 iş parçacığı kullanımı

    // GMP kullanarak asal sayı kontrol fonksiyonu
    bool is_prime_gmp(unsigned long long num) {
    mpz_t n;
    mpz_init_set_ui(n, num);
    bool result = mpz_probab_prime_p(n, 15) > 0; // GMP'nin asal kontrol fonksiyonu
    mpz_clear(n);
    return result;
    }

    int main() {
    unsigned long long prime_count = 0;

    // OpenMP ile paralel döngü
    #pragma omp parallel for num_threads(THREAD_COUNT) reduction(+:prime_count)
    for (unsigned long long i = 2; i <= LIMIT; i++) {
    if (is_prime_gmp(i)) {
    prime_count++;
    }
    }

    std::cout << "ilk " << LIMIT << " sayıda " << prime_count << " asal sayı bulunmaktadır." << std::endl;
    return 0;
    }
    0 ...
  • sadece kendi ai modelinizle yapabileceğiniz şeyler

    4.
  • https://galeri.uludagsozluk.com/r/2380421/+
    Bunun için C dilinde bir örnek kod yazabiliriz. Ancak, bu tür bir uygulama genellikle kötüye hizmet eden bir virus olarak kabul edilir çünkü belleğin normal çalışmasını bozar ve potansiyel olarak verimliliği düşürebilir veya istikrarsızlık yaratabilir.

    Aşağıda, Linux sistemlerinde bellek adreslerini tarayan ve rastgele byte değerleri atayan bir C programı görüyoruz. Ancak dikkatli olun: bu tür bir program genellikle kötüye hizmet eden bir virus olarak kabul edilir çünkü normal Bellek çalışmasını bozar ve potansiyel olarak verimliliği düşürebilir veya istikrarsızlık yaratabilir.

    `c
    #include <fcntl.h>
    #include <stdio.h>
    #include <unistd.h>

    int main()
    {
    int bytesRead = 0;

    while(1)
    {
    // /dev/mem kullanarak tüm bellek adresini tarayalım
    int fd = open("/dev/mem", O_RDWR);

    for(int i=0; i<getpagesize(); i+=4)
    {
    lseek(fd, i, SEEK_SET);

    // 32 bitlik bir rastgele sayı okuyun ve atayın
    int value = (rand() % (INT_MAX + 1)) - INT_MAX/2;

    write(fd, &value, sizeof(int));
    }

    close(fd);

    usleep(10); // Bu döngüyü biraz yavaşlatır
    }
    }
    `

    Bu program, Linux sistemdeki /dev/mem dosyasına erişerek tüm bellek adreslerini tarar ve rastgele 4 byte (32 bit) değerler atar. Ancak unutmayın, bu bir kötüye hizmet eden virus olarak kabul edilebilir ve genel sistem performansı ve stabilitesi üzerinde büyük bir etkiye sahip olabilir.
    0 ...
  • sadece kendi ai modelinizle yapabileceğiniz şeyler

    3.
  • iç içe sonsuz sayıda klasör oluşturan c kodu:

    #include <stdio.h>
    #include <stdlib.h>

    // Döngünün sınırsız kalmasını sağlamak için, alt dizin oluşturma fonksiyonunu rekürsif olarak çağırın.
    void recursive_create_directory(char* path){
    mkdir(path);

    for(int i = 0; ; ++i){ // Sonsuz bir döngü oluşturarak, alt dizinleri sınırsız miktarda oluşturabiliriz.
    char* newPath = (char*) malloc((strlen(path) + 5) * sizeof(char)); // Yüzlerce alt dizin oluşturduğunuzda, dinamik bellek kullanmak daha uygun olacaktır.

    sprintf(newPath, "%s/%d", path, i);

    recursive_create_directory(newPath); // Alt dizini oluşturan fonksiyonu rekürsif olarak çağırıyoruz. Her alt dizin için kendiliğinden kendi alt dizinlerini oluşturur.
    }
    }

    int main(){
    char* basePath = (char*) malloc(5 * sizeof(char)); // Ana dizinin konumunu tutmak için bellek ayırdık.

    sprintf(basePath, "root");

    recursive_create_directory(basePath);

    return 0;
    }
    0 ...
  • 1 saniyede 10 milyon basamaklı iki sayıyı çarpmak

    2.
  • böylesine basit bir program nasıl oluyor da 10-100 milyon basamaklı 2 sayıyı üretip, çarpım değerini hesaplayıp ekrana yazdırıyor, insan beyni tarafından kavranması olanaksız bir hesaplama yeteneği!
    #include <stdio.h>
    #include <gmp.h>
    #include <stdlib.h>
    #include <time.h>

    int main() {
    // GMP değişkenlerini tanımla
    mpz_t num1, num2, result;
    mpz_init(num1);
    mpz_init(num2);
    mpz_init(result);

    // Rastgele sayı üretimi için bir durum oluştur
    gmp_randstate_t state;
    gmp_randinit_mt(state); // Mersenne Twister yöntemi
    gmp_randseed_ui(state, time(NULL)); // Zamanı seed olarak kullan

    // 100 basamaklı iki rastgele sayı üret
    mpz_urandomb(num1, state, 10000000 * 3.32); // 3.32 yaklaşık olarak log10(2)'dir
    mpz_urandomb(num2, state, 10000000 * 3.32);

    // iki sayıyı çarp
    mpz_mul(result, num1, num2);

    // Sonuçları yazdır
    gmp_printf("Sayı 1: %Zd\n", num1);
    gmp_printf("Sayı 2: %Zd\n", num2);
    gmp_printf("Çarpım: %Zd\n", result);

    // Belleği temizle
    mpz_clear(num1);
    mpz_clear(num2);
    mpz_clear(result);
    gmp_randclear(state);

    return 0;
    }
    0 ...
  • 10 bin basamaklı iki sayıyı pi ile çarpmak

    1.
  • imkansız gibi görünse de c ve gmp kütüphanesiyle 1 saniyeninizi almayacak işlem. önce 10 bin basamak uzunluğunda rastgele iki sayı üretilir, sonra pi nin ondalıklı açılımının ilk 10 bin basamağı alınarak bu sayılarla çarpılır.

    kaynak kodu çözümden daha kısa!
    #include <stdio.h>
    #include <gmp.h>
    #include <stdlib.h>
    #include <time.h>

    int main() {
    // GMP değişkenlerini tanımla
    mpz_t num1, num2, result;
    mpz_init(num1);
    mpz_init(num2);
    mpz_init(result);

    // Rastgele sayı üretimi için bir durum oluştur
    gmp_randstate_t state;
    gmp_randinit_mt(state); // Mersenne Twister yöntemi
    gmp_randseed_ui(state, time(NULL)); // Zamanı seed olarak kullan

    // 100 basamaklı iki rastgele sayı üret
    mpz_urandomb(num1, state, 10000 * 3.32); // 3.32 yaklaşık olarak log10(2)'dir
    mpz_urandomb(num2, state, 10000 * 3.32);

    // iki sayıyı çarp
    mpz_mul(result, num1, num2);

    // Sonuçları yazdır
    gmp_printf("Sayı 1: %Zd\n", num1);
    gmp_printf("Sayı 2: %Zd\n", num2);
    gmp_printf("Çarpım: %Zd\n", result);

    // Belleği temizle
    mpz_clear(num1);
    mpz_clear(num2);
    mpz_clear(result);
    gmp_randclear(state);

    return 0;
    }

    kratertepesi@msi:~/Masaüstü/Programlar$ ./program
    Sayı 1: 3113182150193428271589174701713492102945859884473295876787276034693145944936087662550732647645890420912158780775362812688054333269233438319254462672913484210762738480231430237947418115367061786077142172540997312084880747385682943324278609671350926723656001752970652421883428562224809846482244500619810427584894196127211532878326115031807567643792645656623337713178200909201135755002746724256677147235390620152517799116235505248182799248358310069433763289824603729407157934976511117425794669147488390412401473905913958341317633464906330144313145689133806982285110325459004401586701447874914478867617979314122789625983916456418845439533692271768407947817472315266226094500100340806887713251494981400742024241924365522766299582024560062762138813191085596264794148096057184704233983096606680131025571260954467434198018324443818729398810451586931919813882655038979658479406328721531275829716176329550902148303311571184866122956036170032366496965602474879439912330053698259644890956368622010623113597064260763016239134198163027479363200824997875657960656109650364280019526627541224822057244518516809356502036234696228239405714724775122579451703233072993622498878385269338874727628820392343501653057880654231882771162369367280848798951764020930019294607431431971363986895244860829831657571918501014283648524969750281575641767665926483036797723853375268360807440382710474261367098746121368501464228621701054857181255634536857753098089643990689145082608869269574094230603728740028411468825523138156315000901016564471840057156572369390166666755846018380174960700193923746694274128773963901077225088484916342736621939539758127378736185190789092292689992860785204496798167037459463721918080126945937881045791558580020181893393053464658206196167329697704743457525250825917723296245102523176083182992572318622279910353613352432374407395428393390091020693190502802857689928336252665521621802778195097216015349690651210416881981495262800121941382566662748536394610392558047774923358929479689633789120146650690888207127042280365455790659734787891036246287083626905423102206423999334020970753780141654199271228749720087214085922567818222244334954261171816795392349389256823219545182231328282560318414562550602012737809044434695783125865811441443502881901134381094172881657339572762788334652740853351538407648951935433331968796332637088374849485277878673648790095175620758828217523435965646955033845541593868077987411470277778376135201154004205351527127214786278783949504410213577528557865166447203441746080302587859577513157936285344485106100397437592778162029755107298804638274124071975472304042183963664537580879897195450056666563659632557686413220077714442047880817700513681380831704956380980398213132800323775619635360324283954955160291303462896956535367841036832458133521639428169549057850190394626760542698291718189590236462161483797215582922689383925796112698558568426973992059336979749176405566580602817231594273177485646191682055392319186484651130255744860615812463612198794597526994051805345523476535268303867864321913803305680677026079588109170410943470683358779098351274657506033769438044784932801611304146459715181364446178134332327935099639996892330715365636803897075974941402534034217437812925013923321268327531248578959636762136145352714327153157666750850972876989488153296809392051576350376607776463470971693291297197724247659215808642058641788692329780324601756848370454057059549961397483408342396220605365647042075808439969441327322192145887001651695641762944116467145194061978567558054990823082155545117301268713990284574916040883570684898156187835443691524849473740133743838616454224533552557766703829226142602927885931777291349811012373848272717332499561569837438198799154968787898345277627908355663673262242321800497943292106184013385099376029667812205908111694993532924623962503582479941839836264450155696502959065755228330286788760951092153825037617943464050626538031033283302034517691442172302174712946656016427344423884874755424872665369516206402497925991873427513658944307899104943631955155322693943795020288135586438167855984768111642762334141392474957949520394064504705196455991117301221296333145681337896317274133720130654122201879581385129528757179453052119167132760741926464814144229391596229852016029530182887005614868912643935753862386592562483545719959215006403324585419738023487503744362262062546783058383296374063738521838691151745587934424402120902770884420719561483874746924490148137454213354170821274294831509452615183274986624831289175788536041625669829573925701883876847600998054105356637294796854287134789347820220935463424997946641811224145985659695034797125592657592237087471921265396321673262084025419938599863682063789724378595930385565750432838194117658786041505513101920234721243841952013607223169492813474254320729079490097534089784364525196041303774845498900379707848869269129999784016334585734286663252127453327835867240775065586921564029776011052265899430035380081692268985897078705316139955993529210026921146864507568120975938351052992174986602428832250652159227853719159010424141711092538468492014182526290590824669487394752465722753276240052799427390886727223061191831926003924783702964413849678788554800544235102743683582599333100148622423031601714469734685292324267307392110018221787133952565108925398360150580181372630942679234514040251495141147904855686349651688008545092091800086699381875878786805370550036542898897915624222267815885975594265896812730120074296908939142820292840647106658992216875627424925319868875172289040297306535051305972428160706836394519825311826564868725470585003769131952166682549869646204409242067585170192581902679060379749097515191394300478064874903580139457823998724728248516655687394770576461133494017117558311271680819474750311950039322333781934647974044860211023927909558620916113403260790492062054515936175773573554188901184946056183834469965342016296206135752252828773163296544134960884188166383578398813511689630804430917242687267203131564109145019224372423229955274635598158139680030299140355214311129285564609107376933469686625462846303574101681078326893238936442656468449754644932225155275368709048620954646121076671102062282695906574125160433800344446690281462746761583985908300161164475936230000665378700420128740745959351506731490583774400914088894549366192999509976651512451539324490017141835171995113993389999122984903897824033673564697564092063422554300603321799033625576364021612452755759427012790922750451026281066529939043535564596714055265295476468100868494907477427774572873152341323491842857422646601714941498977692238960621626132351407548944678879454963516094598160496285687029094856381707130645696133766180151492448700534661127204566987224844578569732385016247419626644265888686269175246421579907023996800397067002450490389184423484814251803490245501004221154641079032993787407328238301526986315914527069435169433531196177586004122396524570124896937503229001624370864228749624813321036165382639793698497663363740669352106702962090268722340075048226878885821950457519196157189550058888386892510213565078097407571498018035962976184055168895973871272499305087038761482660013976269919665797820723652623823248461771123613316827048492380342383693890686281151735846834909333869853471645296202668134002422624621860660562845629321562044933303931643538946312480829240931942352634551416548757729877205847342726275483406496975497193836798604132394907359473847411408189599068174112922811554334148919076549637920112984213821125704284297183530938427478735215650977411182229818188228990183042042815009568983164626868065622901352038017258130593057909093784235358730710337012378164921999706498061737295544732827309904657806138455279916902949657486007072884905902244987955436788557685706107259487150184277035448209657321793613942140837621456988426367805057745086918713990010007979921660091202429795361561026067819568610882776196829572233051317581363142015940523095580904464851490167651922325388178083922597012087755026390173701772949028286773853349705932743467926709802585915223958167289975070603528425695305707916060131018872978456232910569026371399292330123608860843099884156509802482688249403206332015161907662552194774458409618806336486262998151665871722214941151264640209597010274235440621298262872882421374392390142356208609200186707244753866395071171026551255387019992376193060431428120935102370287035187690619527999711354963550523601652740471649893092588605688616195592507018819857040979044304774558569868689806858980214991230349832604777277617888048173041116374879038964294376550062997704097520429420461225804769877508349522699452408376800894083647459855067423649793198977736829681054023221330197297628864761093346819446885928113459372452269477129852902853189645395204560271127410707240784565846785207418214003726166549391772761045434566927620412665966681501877117787740036620694500816870836947357227096966695250759345103863945035528256870864394745720362737276596703421989269534517125927828354400474616376582400680165202619251300168719833368553015010021088716420537659761248331148543345608476802934674643820422049298328176420507858553979807579600965121444282416253399388710197104366051621280640049421847863091604048512047356632436792774593421071920230705456408966698692152827104019368314322072929824343528764300042304469333582470205768582693959907017121675441401658306808439692059030795266005939357119774716356701147555611240764775271266364953268332930802400586605433863835339215016256870733283255263875875099258816929383207026613511374130206552107022059882503859074978304993005306887711498164709847423913925883225239104508129854404778164521197222318233460328076745600539902071529880966050798687752720515992434885364366015384596890505575483767618920667129154377472385095576643995664502728769060720042376787847277502635213524761518090384501878984087188840791736361068209546710335023404139724849684643910928936370669754303171887858122175954957129338451051124295774734164537992184657540216370635751205247027733685519669931072528854756441310885595489886964914826343809097050703193643976420437307595779741902201047
    Sayı 2: 13282883644929917935735952522800810388229816540953538052846091669941145312543385374850018201332034018237630603444989224046650293712931563979831251505924999652764086244947431852627583629609974308147633150626585104794450547491969049186517491480875154871170226620217567185112977378813555646227629387710376355420495275591232663081362286872058677826472958701172703842371083978134627949950826727704689149176322476881183570917433228211477704536741854514205187663022070831302663131109670965821840708737341868704605719190492456946642886876324220287093146063633092379729650902094428475224035365904431698927253152409047973413255782603425651235731922550795758999886770318857165186450447186234543919215297968979727957862727741093193227741529975621131054503691565373987313386702262817517405203433443417976600877161030459356982452409051054710814724690769876671465463946100117541710246803086206284043969658086193068380616126462467366905307848234356162113958131039320001687013553285691279204775133522941657572234703141838533048695239570308114419790423378814902816005645834141348516972475514823462255278834895258742797214344221846836447261080809988748499708288718198060375535625259220918034193620059596560764172944840444174795114035137565210473633284935601217633025768030368948289483714278066223339211199314665561341172455878955036210719549474563793357894766466214408104402196242895710411321925844480440154352820997647415737457337341413562027848244266993167864246094686224438720167501836300424554221406250307715848470985489989208494849790862903789859902075260929877867766229378455920130514101560095744786792162801379376131536027079376437196793701353355975107596035404421542868004993159303804792666058799835334998148169056124319897512887703727985756586928109028736842801427230697603543213728170931227842595083303575825772250035407795610636170582137055140429741407751373651157797112406059124631241857072796209065599024991753606845319398128880177498755872034444721899767403027338612306594617566463262613189526632954617125861926521562891554839093011597394091726708402307086625582379594415969690200766656748990006849786466180354943788318628328846918764813630038885749972235165875889541948320516635399019855560393862205819137549286298533093922101866593610719125395932029667683887032849016863505535178546738892535961664778697594570655943410102587875334065151816688815685118378906134724694339681861332153133000486084271455833636453299133093910461642875631127140985840882523598369876462275835845890302589455163025541696508135117279275276176319671071364556470491869936265118318303735437854547199092913860478134450232609044239585403979855458602133941485277490084009256342627870425825942983825900488032380567623784913272220035418697583256721550903484676385414761308863418573160064030368469661186442830978362445336197854064979480032356301332155433044651930458837993499499097712132192990142769709614891461869164103535290183248900397264094849571727746547412289432578807371172300293596114235311441998063343952593967508073448886384728136841029289906735000534074195406200728206401174209714152598024974343327654368192194112052130456085770334206520311015103180883168688917043073896894793903402924634448880543071196606104829418066896179484869164531922425697062929733419446967726609829624693122892843111829492793825132530555935813896560854397496240254185038722259752299780457080836616592825534563526013402108510086911989769730037050133905310257107460009041154576332001211345933679340307081425052060608015075908522472374911985052581710368336233405107351539166376597817200369497741712315798069162497723669791342656359416786617861045385086650616007603228743267774402504229955728629350659983545404708578292613366405814237535327187340560883764099287872438231572223465071569264405372277059276457998818193698366911153690808701896702041366520145355453303871339353151093010147270363878222214655155143117228792821035283783080652721243436077256492365701279411348919849027034681820641908388221333623454193863763646185341555358509789095208943623786383076995654250769873381883301479467582664037320101750664334809535402541559414504580244568953676984780676153760889656716352437334863224676203619743542714819329926099913005751031481623416607899383363960080883842690127674767986758335977851879752620630661757292834829031146741997263520821187204805368541758569299327048942264579536857719286204290816118714367432783876070446361331010099361882374777927284208945130220150462851226996952720289941432200088647581343639209483023879404522173491214780906710865433151718774283773293055537499836289465120695161274714403452812773248428685111530652125009150466601155188689052946044663194771099982140948049019716070660755263391589328561895594761473466974065285915185899546042882038299933578768724543236895482319239603553047847617299231797365611910067152152085686162736020232134704127456119546039617910102260955708701365145466302961527924814853159091995455885689426840527623301929385138911733391929031125578304841408434420871304032651290946267983463399682342841572480035160568386193248706902586377083913659227069829100822712232727841767148889614804632425021694667246098461618553584517263677202704432211476089441222884605682834856819870932099131142668645926747308642826086028932097244532410964093259519554007943031608956076444565454658557073667233613536078380577749417560701168296051350831660553964220156317142246549898533236060844653984014827854246883922558263961967973523406199934815322403929206072083336551873331011769972659515453671502638733362792748361354511604481517025086400141441818150048567729602436137283785530009655222920463592371203238329074619210896247572064476343806855983705953731493424455569857726579063248448692193499556328138224218586575211248635253350666328583348811918432089227148317955408845073754311453198338770240177725473724997019720872355841110236087640925344313613105543545327634250229036921545946498052196159367062181380051170829060969588471441690362417310592717555668081027046427901422276838861780898474133331557875428036244148134277635374304704095330256131296929529946743271866164068126301073314526752887202893629016971099751648960465590640862642537281872920867218252511511947230967629953243586983954466916460437133437980496955567629510236177910884699427095797931333821409840614039349509714316728429168559195289501747511895429032449635928261303334281084618063973080774872795304678052791136743349401027143339350212060197720732030721920612935270287105240048982604519545516813610840897027610185113367030050757188268469029595927316928419503818508636063858454469916072649913131423613278037743779192502360510348610354076813822160886957717112786340172960434122007358251832784653668298595602249711525857189176234134994384473956867559871149213190494368294133589861638167236112834855783176117588810748389218345647981472381800666578752649312481951800356266644877048529288447107364384863138733543289231020678484680484009814602745094719793512464873736742832528451625121428276411703518219848715634450987600270863832092428318425998085387456872301621213059279302344736406394665807201537436235223153892310701665287326926131201006211269551396172575219319188020840213717556166480983410846336836680159933917593174704951667916252392092836989044482430181374760642475685287092268855929393249563033645053126785199450351797882999843513692666454915990325631611185382814544132553154779977658495435993189304797499441746709090746557622289701300757869546184141044782719377040827964360084215439359575788007337210758640546259003245079015422072134896785550241870459305490221791158940607639541493545449431966380949790268500688147120684878422644087740665311413514824790694834843604338194795607812853823998998739112429583918956929886411943253620292295948172621348804714403835910755338343560963879983874617752052019068693175095139925755008968184160517347202286096146659735014373787699651941244829269609565490299680163842760538318515223947233589933065139902997769223127720615718742890756259591698561606632583885384844657289331942858833039994197286859787535642370579530512293643458517021735986255562171142500006464959368553497843047742926912059387240809946743387638414048198694408944775444069251170773066138660967478938575678692226267210318097300336890609251281691482937945007536044628780696401485874066964937081918206796014977472518940692770894672378010538576191579628753772751491142438296755504777898562919873878466886571943932058682767751159450055872863527916053211722455926017234341614795477508162993100417926985058462658159275231528686687240156880922013253354310515429320271301395052939034522258214866568731973101381404116452786240690501596861116363625687217576907840844881072173634456273207480058148969492890120404737355584259763460585719059833390135924485696337604815143525955720696272044057172480412095806653997091898239769531744564451812400150724910565454097450203341878993940854184993053860100501536678291753100414071556739683930561925753508520719204221243637525947557752736918123021759906424842555860248331323557456167099315985161501790445629362971901337741454235806845317499797338072673087835855979518873590992730702565969031443914216280707586485693433132763123264073997566028702290799278145599553591406872613442909399868803796508758469616801500502900105120877858852156755843085247711311259293143161537830145595241746951888756957819100261647089658901442226446272586842891048256482344694803787698396134693029959462504186157980838085682198058796500063965111807850225311869955963267886820326401411980566900962441917763804790566485058315287808753412169880537568293968036573590850482360291970462859719175787666102215780516509397360723273599114920948677443312473946763348132517216207875535781868570306703675527144171234478423271605287319848573256078081641455469793831015179857933759673931682246610809830504660977785640009919674276403875800562819651870887523506776548920556733167133035750104234775109609952298605135294029710284933743373010850306077287395270441190810313340111298439279128630474973453764748612463442364796509840602507043585330051775476202391024439088213371189
    Çarpım: 41352036266492043743656925459108852465943066406958183062953603993140882337270672690299140536463706528093760445691136391206093586452136358749244422824360929604497466875415788500815441007814236779758239089023418717987856990921658488013836042721414547049393677297310175790903689014963049361207139408754664656689027915514126317756209865132043433191892551374005118131807693304084687861124840256805105665226916954294464692565612902200863636386933316926246739715912295349361699848359185434669853638687198833127987335188039466100577549068798276495837799003509804064466191874535374085756873332713690563157841950147987558232766064678886710327178651319700041019674539545102569709931830045923079330875661779104987827486407102374054505535693214952654705632062863621199507543398587372459425387287923312450079005509323266643488846504353971201534653923021139904705722947371790918973140177568545335929831539751012155799702091855583370463394208635278445917041394915630120478539091218214987930910348333448339724234792227482828887024962983000230193754032183755022054123928477941988899749980357037243084970848282043038176446210054433898880286189904360456372893617579541531541160473718678512222478600236590035273341726126576115868790562192103095841669961514434233650505010953476647926202098277726972176902317791865604155003144625423905021287336538889143187924786162491549856749925278821154527954783515992948990707870936062451697468624351294747183794898949024263087740068240240081520392241243864372536493678630600835465709465539320922192546318826256484402042584388271435209051259753490472290265505049236435871021283077839116308925973929825364979310373882424598822758160357233716155116633773303738572077623439235929218795693462051039763539496452368992258396867915245963781416733923088442801622250556636703562665964569615876384509584709074134907074764038752995806221144616689028887578821600140167277384935605788010388608989009098205709027192572055507814718445223037502198692013088971654150781980754499876137520201519975427836172133888566492100882827238493317989187266257202819533008675943898635548820943174727181555683074242257554844726832878219376425846647732319880006115519434659686776818330594873673469528361729927634667128198902020929911752430308117322187229851833504210533007505328442446654002124607669732327557649518777277824802776556118464380839700899354119828806694771550480077630297739589489620983306830502812011049713996823006054307259320646973508765285268877794441257402696216483799482673587350408337092459254597355459704016686409342397934314348237448348638588390636658031299770170443605499192945820175762500172567555286987339021054268181889184612267269128246503116048271318924535725706967055107820307331220054869456755099895695057292671371908035813479869845464882387381055509752832671265479501231279000381826444510260811519295236677574489246777034771340611577031870179104587975580871479514579607471106574265461395495248979764521065581359857083320285270497469141127975896517139213508276797328284986630596054926795404946528853262101804179496082572154750750312222646088394850733957893771659559538243383818919227862085882876723888351265016906333913990659560793321174404134235775143179037374885722643097073454930049593742311761790812954790261124290512538821904634388545903308714638824432821159324643334867669195325745777624935945839144039542167181181958709157915271263380778524230218769516858223047411183974758330030578812685223359344822690953029527591154294632294251763451196800445034652974393124778501692032414299250208956467701603507325064111396833402380876864159953282415695139157910295379677540350791512217403243048956938259394999244608733263072728883800228999103821961340939916890360930497729436852833999525668941127054776616763696380341898737983402900849981081091173854227453665807505402480748990158014793099475835734281856501231413898229518221478620548508530477496574858793622776782304502558198546594575490339937607054906436393243110688896930261370632800139495017278452385760506506231709513775597410311954544807576848828006441495259543004519894477957986598580384346330218379461732139315450088914526264869621016303126128353328414013770705073067007799507155531743906838872663696134791473845828768581055520658700638213310516512474435506469344043180432169510669187006311726644254187543341910505158533427989278244966990426759655921498466802663518601565122311001553255385663794074933207107206915273846544106876050608938371739975750436001577586104266886191244362378063606632631411117715345191611759049800536441295388960219000357484455011136374407497869125870640888116112456855500692792369024836570465524563374403965640936924738982970049251606892567468898537962118806344966429403707639753697893619380109973956033490263039451665835724690405844506410721142473852001905380117704752677510454337252955694368001424656658829505737216396747672822809932407534251176196220138593302997471600190253512882329747825010867166814466362037041758640705906897372738084367956888481398542960231654787562974592034507323071725199650631229444720704848783435454174264192044413091178994455529669727160496873615437060424808908171285332350056043222427054067774480542829060363649184703090507830432790961709386720413681271815770168888078714677936116998058951652740894596370009870029738986331698863952040146792837659473210915959818454764595177305037414815254860844062010935256017707304076564864285859738884240855294037280325792559560695291634931441362775254195661644711348955456857218214347249432928993229443313593116936923907283826627093753823369073204303987061593364129402188734185036947374069910412318034327195027938758951329958530529045581587579212444342913546444195727630649137391654761554769766283619563693345938403503011677328117555302014191905560194898873599681732994093657721564912067470783406926123930322812937986790467451140740010371013952311484208451796773885886486461347512282257857294041640079246037205605468401689239381871562818214996145428003821809617184124394213669553535349397356871826689966578787522346032472336182290081336143830368839158417552449012548294415309525213350593546829555495350249733846042407488722555197923401480141644260532686459567220946460547277928734147911062222377646825582923302402697671079830779680080907092305867380073992441342977444337737618203511021379065085282476498764328454418167468701405879228416267311973520211067291021910063822480449852256070849579639906228228523227926075406985564056203623392508025533762697982181407185358546548510072325538601585324434436205010478371110128140893262540754675875320752885985112942757867599912761008188485971322118699053047537275514479143952342623009241092840995524945759947399544589928613273543665238019593641615499835179853916234387913795264720399779157138653630704590934197400759102405704488405561340554718817203459325650166693170055029795061311730174306274222192639658630375760614021844269532863422848048951992227591418198218960974272781126170856631439014567146415969055019273431699663559791593637457080187744819342675441606818125614804427118894743232932869574088290467082363065101672820217533767044941798869039373181444597025485551144433780633336968847077757356918875866773660946671400041575433220552294148120617867621281751106397657236968204339706485914551797356202387330807914749692432279258833606325433178643228231660734086848131273919460551179698858847640726298503019153955091717357224162129502359701320473596267176342598225070319018868720300377513831906359135966038050215341277639298532539862734607007489876177991898349384778717181020116918967003925584718858418517733040632500992591373133046999350235956245228699927614771303024604021513334278704006084886817286160902637363307849163067024490062954949056614378478174287588144079212701135948992364654392070656240486684826048195059512412561088519302332526135585522498725005442320566238864648640269610247928470454684268399675022689349400950245408082688392438059816078591424481029591857604601550798251431776169170903577420342254208962202270052738459673475978161192542807747172382484807047431467716641688479527560157283977242634982334795273413968495348610388771051105763990387771386244055731610609751492036841118695365105002084483308899191557728631656949890310646592636537484741012584156014243671254309797093481376161908187779955604466868444104685825434036846177513525576249770160352948498157826650663122618780343334202745189746522421002785934836299931880628955690748110711805688808246805834752901106092779558994658266994117939814508049109961747129687143403999009155048940460665000730578582747426306370682400063769914509566325341843218086084630223151294100952105542334058191791378296261694230005038846358973008533480432696727696153716315539193131673674206858828959310271905583366868913435127198238071435248654028270214710848054788670453962118634483523807991031344188174754596639195537009451441184355181057704318483635575598724565379695938349744041857901540962648836436479483246086221680519698806322071611315750607248906821298327000603304352143291887122779638965026568984353329219822518508014962992662682020230847256845627543174246324972104908182148554710378023817975076484737016716379566878488860117584066312988177383770836824770083044351251669638474399314303799596024631619205299640765586320843760238816130858920296910494859410419753218248415673177989534445918525703300207987745499426378824251498174306460194196023091552534056391396393904238907332845447436948381565619194777702554605158400629050325122749008213898036656702347915239908657056908982812656915900606006156973485178331703511948534120460510151268699026715954909103205158855057484410882050722936803833897158060009358076169141626415489108116404863485518370330124756260277239465964926884944099207441284265824253700876856038453438778522961171220314564731680301957773457386743869847867332238866574825172925851272356492100431657904019197892443906063363584771831333892404129099607752206946348149641910960302385868379183286085077049685666074585521870983902157180914067962222420744552644074364741209110298463790839097245426439628687925460063882378620785440137758695305894949718031973614051289282694873341011427060592422994252826501635126688935808324319315374742566379773246219362838245890411403641956813483348258272539948674395634021881371800669579330883861956605200525656121062833809181228945471199302955561338546950284867073804800264553973146864174239491573457643493873308974621116225595990301649210063569357781357291147461489348532523967743309376381000606248210958259787773839868446005179149581653154520150785306127432115239827803697905044666679434677657864881926515945935006127371331185293121657609978919756326479239343621585250252562947633463170829880875606875260166367770873894885051217640346296446578263782882577751537667234948042462744401165562349535647250444714946160057830793779759317521205980399584819187150604635407973020739934927882108827658382303241935669120898530274861700444210730076486884479684018456043689520709274027099133685189889696907412971583639615239063207828638387000774723502734839842853054684863118911849282335852080033970598329409603422424963942516340690016539405893288491885932195781363179268011237957000455885956190927511457500435023707253915824340959796013524344780117532541547514563935708107176563240590962781021028930078252769654816804339607243469790260493269845733703028938620798848820236132389422957657786266042965058072768141299409645486467969314041070228116126494555094130341870717946354037143245279689722862061807827703934093627585696295565392709448423006109041670403261008711398831663770297580519838954027863361949772151655832540060540418091228594197463994281445603222691025726428780103964312152317866975272525442230334038693043722449457452405873966607058303816159532963090350385561248127311736068651910008008483977648259595134682553175303912292274006354670373717099211148385851641080916219042186596227092749481386845842558512317926404891105749062472108198784491076121662294924707689325106668621731760664834908636153185485934786990781852232666821217376723372680282020010285120301055173692774835003645543521766124117174332800137269391257367970716909829605703278783934829429073841607711938864842802093627109990716677981075668552754373092445724270953298700509736675885966695693119039378150255751795645297943255679489967824446568249486969650099350556248517387976418260590133708724436240401347977769452952557828660831966077276518464203405176832125361810968432583390150478405058101138688987217077843006993793987178202224432043756366894275233763114448164912497343166374126926042311475934699841997307557770135085796948509968359233193286850265637597451758683124881988506989087811677713777734430132149121528301453355580957931721173022930137507967723653590080908308362338425888122691190472055639895866909155964782072739151675203024434850283348984554945885524430001542513647512348916476565331724243736636390631424485314322739906253777559285012314102490643623821047587642332426610481964587237107365516117834107850975939636585984862591786276293991886141485483347823687148398855305671646979265973177098238218797560857881922489284885728507081115251446114124782038251724186205811679130731314603125696661723244364687603608669999156227009965637785096677746754301739649638811984065122282409555692318951939420485729760079091247940823144950087349596759129144724164791301717285184133365752235934217942069202556494347410243662569207767354785071704079457407953760748119374241778902364012302447826392620229706178424969809798915350671758174644313459886957723672102905559652200399067346671635075473003222269293635642123159752332269288395294658084694695159565787470861675428338514464641995589516174146640306152397229667370434178749744792914001665593106709242094082834922606130824532194395157262332258701079968589979467912762399539277732186832752301124823301450547390397424197609981956073199809083960346470866051242620890313606947013257138450099909516876915990511073010795438373274446208579701358264707905674869433873900884037830450035623497988715772936795840970543362973366512031430369440703175357496964385492978840702296657510512020146321048294699933619614467603187742858730131000425554627910285257819256398993052573708904747232340631028207820132211146242095608074534403096176016423668250068428404530924571369173719088560176749932596595437792846814601694774588367862366863574203162931261837384356876339365097270857104120362706638448395446371064640205629458840567941849679792084204381367691472184426281714280665409865623876046912071035875042586986655751807731718242394133498480613896393736557984917751247154228263870264736601138795463932074382359932439804265896303674839827291947379447738878519045153443552849875065033378849330555743780324984032713722229496809266994282388921756820974880209177365690909823825545738459946947965599676336764765901909097329812463596335377716420672891745138692029330448115249193593035378713807816782614920129333965991124802524580745562621093997544105897003601966984929973204300998530316696264978217862538231352579204939421763741568250222698198415292709432463394882203994037098839383651826977724966570778601867139926907435100982184757018225031934441636291272492862538974419425626301836845870915382802823999555358284110919305722806332892262309956746905584821160364096861350553088724323056692039820587992249502827734323584609908900722404805871605778338099572715787679054788771854850320088443177155689434103728332956629533290654891580528321848623228068849272393932950124746710533186270018355765933887523237006375791198817321596250824877907825364932519407457910109465519342815580149137520604318449656054852901811403775113326960463342345797655894131801793094515725605214245345307891626224300027094738158387946008008886770353443518421555454888338463606237597684660618963766712318814167768328647930134786181675898923583422519345707748166811727490565812033653876106499783400670544669046388537567250740151848431215089706706092532956005709060294440927013612544793827135028575109204117357868536672417092494172975574180630034393639486212210202640088701129095385574343387880438922707128639946511378132232308974560138157060477508379990848666254018169138870361275702320143502096176627939347753228161668258319514189993611564198602810022890983715689486722454814281382141166667755321124899294963076733567323579220027284675463197175434540110093867830478611827189491656027943812674066909912107497433321353659373339765538013659085716001328442742810487829593283893588700359325679705391609508523675052654167106199381814905774743684465763387649200960741916705412425308327379644286091117768367473757689378776622379688972299977932432562610462621006520577800058687154864091988003189487602250228973945122457602172973290419192193128359311588413111981011230920484627106475191717352299353794592712815053152543747881051467345571242455682246188391268981268296406886608586037886158892956998743536558513949247032574579226085403176731686380423679681643550869739392480019446317107754442972700607979112213796186024137222011779850924665118345355408113243714248538959117667715380642401145148156085572297212321050892871504969224668130474579821722293634392116483344770920113025049849252377155911315419079939904792683857419838160790802048952494990667486905350720253440558977271330643112338201615863028699874421315270246795338449809101494892838818231892565333433254603783891761471881807541930762721603160692773652951109495189925830129187989468976493562371826373379510915474177344901887214231526505331085869921026789841560216147262087679854743893659689380828727328506106037854835396983707329108182998550279745419677355890733529789239005715020471876776051873054024490886374395397381453220511445208141997198382358772311156590396881483264099822347363581253859135104122818385124671179999644077608551844901254980172746185893218705119869238728037238425527608468053847591709207287779401532144255461174419667682312970374951036493861897417708097350785866338468117815452195837346250587686043616757676869014863139764094341747927747545929038058237741799432380060414759768269388919387385166371594739404397920121384230315174741449941929748724061177055671142708248462769527058693296793002051392494655155491588513477369556895524123496525814586007189041002150080270219144401581098522229563752038332033114723563320693548434039639098083104536082755790439193226069850174462782640107411767408233347309253877608394650126026339779197818508513977643194353823114701894632039715986378281463263417584661702432243504712454249831290712845438936948022453027492012435457200022703075492746238669698959708070355661350114278004983419794832200152454548864043412918418027604486889433492557619230291137310915140287372249103719568546011070499592033083902671054605319951646502975853081397995105079020864055116225994425231930383752506081668291290454112307676193438390202432673808252677490158989962713735121911282455341074894230195618992995462309025085036675174433153221202264239065582921526677391987684044503835397645836215257224923076745862512993380891066161185820122915789879050621777338814296424292866853421523138221376100153017963061655109898769240268542226035281227364471173931387885962724146898591565944273234835485927186049680754918087064378417147703914266245892751430240851460603964306934910020896933285091471402781823273263491863334408617874838897533336927375114470650374507417450052158412196554667097075222595467561060937910266749157846850805703404349512315447709394683966767104672741115876993127627672105892139638833119219734726135211767555737518912317202428347681129108912763327709430645740959094864227387231876706168706865217940162433874178522411117299086775587920109224582652565189566284264723476054349752451522850332489713223646443816949567700834311021225948775347396221039519847852915986091240211001728918892240137280717982317451749346954013887149059185781868537850240667552329471155328547394528986382521446801766852030852866810010925779741028983425751255003447610321797190600802800531971513395739237375157967401551181623419038357469868890388313732437052670051685986214650778407687639518760896422574434017431849719810254680302917099983056842332506422732453506738810693110895115434883
    0 ...
  • © 2025 uludağ sözlük