Peter Norvig ismini daha önce hiç duydun mu? Bence duymadın veya duysan bile onun programlarına hiç bakmadın. Norvig programlarında her zaman birçok commentk |
Peter Norvig ismini daha önce hiç duydun mu? Bence duymadın veya duysan bile onun programlarına hiç bakmadın. Norvig programlarında her zaman birçok commentkullanır ve kendisi Google Yazılım Şefi olur. Şimdi ufak bi soru: Sence ben her program dosyasına birçok comment koyan Norvig'i mi kaale alırım yoksa hiç comment koymayıp "değişken isimlerinden anlayamıyorsan bence programlama öğren" diyen seni mi :) "açıklama satırları olan kodları okumak istiyorum" gibi birşey dedim mi? Yine de kod bakmak istesem aşağıda örnek alıntı gördüğünüz UnRAR'ı okurum... Fakat yanlış anlama olmasın: RAR belki 100 milyonlarca kez indirilip kullanıldığı için değil, Alexander L. Roshal nerdeyse her bir operasyon için comment koyma zahmetine katlandığı yani diger programcıları düşündüğü için okurum... < Resime gitmek için tıklayın > Bu arada SEO19 ile aynı kişi olma ihtimaliniz daha da güçlendi cunku SEO19 da tanımadığı bilmediği kişilere "Programlama Bilmiyorsun Öğren" tarzında ukalalık yapıyordu, sen de yaptın. Okey belki aynı kişi değilsiniz fakat karakterleriniz oldukça aynı :) |
amaç ne, vurgu nereye anlamadım? |
Görünüşe göre 4 yıldır pek bir yol katedememişsin. Çareyi yanlış yerde arıyorsun, matematikten anlayan programcı değil salt matematikçi lazım sana. Ben şahsen bu yöntemle kayıpsız sıkıştırmanın mümkün olamayacağını söyleyebilirim. İşin içine kayar nokta girdimi bit dizilimlerini korumak zor. |
Bu yöntemden verim almak için çok büyük sayılarla çalışmak zorundasın. 4 haneli sayılarla işlem yapmaya çalışmak beyhude çaba. Sayıların çok az bir kısmının karekökü tamsayı olacak, tamsayı olmayanlar üzerinde ekstra algoritmalar çalıştırıp sıkıştırılmış dosyaya fazladan bilgi yazman gerekecek. Kısaca küçük sayılarla uğraşmanın dosyayı sıkıştırmak yerine çok daha fazla büyüteceğini kesin olarak söyleyebilirim. Kayar nokta burada devreye giriyor. Belli bir uzunlukta sayının karekökünü alıp noktalı sayı formunda yazabiliriz ama dosyayı açarken sayıyı kendisiyle çarparak ancak orjinal veriye yakın bir sayı elde edebiliriz, tam olarak aynı bit dizilimini almanın imkanı yok. Multimedya formatlarında işe yarayabilir belki. |
Ooo sen çözmüşsün işi kanka. Hiç buralarda zaman kaybetme hemen çözümünü uygula, programını yaz ve milyoner olmanın tadını çıkar.![]() |
Tam kare olmayanların kökünü aldığın zaman ve tam sayı olduğundan, bilginin bir kısmı kaybolur. Tabi gerçek köküyle arasındaki farkı kaydedebilirsin ama zaten o sayı için ayıracağın bitler gene aynı boyutta dosya olmasına sebep olacak. Aslında sonsuz hızda bir işlemci olacak, rastgele sayı üretecini çalıştıracan, arka arkaya gelen sayılar dosya ile birebir uyuştuğunda o anki "seed" yani rastgeleliği başlatan 8-byte yer kaplayan sayıyı kayıt edecen. Al sana sıkıştırma. Ama sonsuz hızda işlemcin olacak. 10 üssü 10 üssü 10 üssü 10 üssü 10 üssü 10 üssü 10 TeraHertz gibi yani. 1 GB --> 8-byte. Oyun mu yükleyecen? 1kB fazla bile. Dalga geçmiyorum. Quantum işlemciler çıksın bir deneyeceğim. |
#rez proje çok sağlam. Kafa patlatmaya değer |
Kafama takılan şeyler: Sıkıştırma algoritması bularak para kazanma hayalin var mı?Çünkü bu para kazandıracak bir yol değil. Eğer zevk için yapıyorsan: 1.Neyi sıkıştıran bir algoritma üretmeye çalışıyorsun?Resim,video,rastgele sayı içeren dosya,herhangi bir dosya... 2.Sonsuz sıkıştırma diye birşey yok.Her verinin kayıpsız sıkıştırılma sınırı vardır.Bu sınırı ne kadar aşarsan o kadar kayıp olur.Yarı yarıya sıkıştıran bir algoritmayı defalarca kullanarak defalarca sıkıştırma yapamazsın.İlk seferde 2 kat sıkıştırır,sonraki seferde %1,artık veri sıkıştırılma sınırına dayanmıştır. 1DVD 1mb'a sıkıştırılamaz.1GB'tır o.Ayrıca videolar,resimler falan zaten süper sıkıştırılmış oluyor.Bu yöntemle bir daha %50 sıkıştırılabileceğini sanmıyorum. 1DVD rastgele tamsayıyı sıkıştırmaya gelince:DVD içerisine sığacak 5-6 basamaklı tam sayıların sayısını tutmak için 1mb civarı alan gerekiyor.Dosya sıkıştırmak için bunların sırasını da tutman lazım.Bu da zaten 1DVD civarı alan gerektirir gibime geliyor.Eğer sayılar arasında bir bağlantı varsa durum değişir.Mesela ardışık sayılar sıklıkla varsa,bazı sayılar çok tekrar ediyorsa,sayıların %99'u çiftse vs. 3.Bahsettiğin şey sayıları saklamak yerine kareköklerini saklayıp %50 yer tasarrufu yapmak ise bu o kadar kolay bir şey ki(ben yarım saatte programlarım) kesin kullanılıyordur.İşe yarıyorsa video ve resim sıkıştırmada da kullanılıyordur.Yalnız bu sıkıştırma kayıplı sıkıştırma. Dediğin gibi sayıyı saklamak yerine sayıyı X^2+Y ya da X^Y+Z şeklinde saklayarak kayıpsız bir şekilde saklarsın ama pek sıkıştırmaa olmaz. Örnek verecek olursak:404,586,660 sayıları yerine kareköklerini saklarsak(X^2 sıkıştırması) 20,24,25 sayılarını saklarız.Açtığımızda ise 400,576,625 olur.Görüldüğü gibi kayıplı sıkıştırma. X^2+Y sıkıştırması ile kayıpsız olur ama fazla yer kazanılmaz.Aynı sayıları saklarsak (20^2+4),(24^2+10),(25^2+35) yani 204,2410,2535 olur.Yani sıkıştırma değil 1 basamak fazla yer gerekti.Ancak kayıpsız oldu.Açtığımızda yine 404,586,660 eder. Öte yandan 2007'den beri aynı şeyle uğraşabilmen harikulade ve büyük şeyler yapabilirsin.Eğer para kazanmak istiyorsan ya da büyük bir şey yapmak istiyorsan ya da yeni bir sıkıştırma algoritması bulmak istiyorsan(ki bunlar farklı şeyler) benimle iletişime geç. |
Eğer sadece çok düşünmek yerine ilgilendiğin alanda(sıkıştırma algoritmaları,information theory) kendini geliştirsen zaten bazı yanlışlarını kendin göreceksin.Düşünerek boşa vakit kaybetmek yerine kendini geliştirmeni öneririm.Sınırsız sıkıştırma diye bir şey yok ve olamaz da.Bu işin matematiği var ve öğrendiğinde kendin görüyorsun zaten sınırsız sıkıştırma diye bir şey olamayacağını.Çok uzun yıllar harcamana da gerek yok bu işin matematiğini öğrenmek için.Belki birkaç hafta yeterli kendin doğru kaynaktan çalışırsan. Hangi sıkıştırma algoritmasını kullanırsan kullan bir verinin sıkıştırılabileceği sınır uzunluk verinin kolmogorov complexity'sinin 2 tabanında logaritması kadar bittir.Zaten bu sınıra yaklaşan algoritmalar da vardır diye düşünüyorum. Bunlar sınır,yani kayar noktalı sayının ya da başka birşeyin bu kuralları değiştirebilme ihtimali yok.Kayar noktalı sayının ne olduğunu ve nasıl çalıştığını biliyorum.Zaten bahsettiğin formülde kayar noktalı sayı kullanırsan kayıplı sıkıştırma olur.Bahsettiğin yöntemle sadece +Z yerine +,-Z kullanman da birşeyi değiştirmiyor.Z'yi 1 bit kısaltıp o biti de yine + mı - mi olduğunu belirtmek için kullanıyorsun. Sınırsız sıkıştırma olmadığı bu sayfalarda anlatılıyor.Ancak ben bile tamamını anlamakda zorlanıyorum eğitimini aldığımm halde. https://en.wikipedia.org/wiki/Entropy_(information_theory) https://en.wikipedia.org/wiki/Minimum_message_length https://en.wikipedia.org/wiki/Kolmogorov_complexity Nerede olduğunu ve devamında ne yapman gerekiğini görmek istiyorsan,bilgisayarın ve sıkıştırmanın matematiğini öğrenmek için şunları yapabilirsin: Matematik öğrenmek:Sonlu matematik,sayılar teorisi,fonksiyonlar,olasılık,mantık... C programlama dili öğrenmek(alt düzey bir dil olduğundan genelde iyi öğrenmek için beraberinde matematik de gerekir,kitaplarında kayar noktalı sayılara dair de bilgi bulabilirsin) Algoritma ve veri yapıları öğrenmek(belki en önemlisi bu) Bu sayfadaki lossless algoritmalarını okumak https://en.wikipedia.org/wiki/Template:Compression_methods Bir de bana algoritmanın nasıl çalıştığını açık açık anlatır mısın?Kodlayıp buraya upload edeyim.Sonucunu beraber görürüz. |
NAP (NESTED ADAPTIVE PREDICTION) dan bahsetmişsin. Burada da sınırsız bir sıkıştırma yok zannedersem. Aslında bu konuyu sıkıştırma konusunda ülkemizde çok ciddi çalışmaları bulunan ve bahsettiğin NESTED ADAPTIVE PREDICTION ı da geliştiren öğrencilerin hocasına (graphmode) özelden sorabilirsin. Bu forumda bazı paylaşımlarını gördüm. Muhtemelen bu konudaki en doğru bilgileri o verebilir. |
algoritma ile uğraşmak güzel birşey fakat sıkıştırma algoritması artık gelişeceği kadar gelişti. zip, gzip, bz2, xz ... xz 'den 5% daha iyi sıkıştırma sağlayan algoritma tasarladın diyelim, onu implemente edip dağıtımını yapamadıktan sonra faydası yok, yani iş sadece tasarımla da bitmiyor, sıkıştırma işinde üretim de önemli, bak adam xz'yi geliştirmiş ama heryerde kullanılan implementasyonunu da üretmiş. daha ilginc ve hala gelişme alanı olan ve gerçek hayatta işe yarayabilecek algoritmalarla ilgilenilmesi taraftarıyım. |
Sanırım yanlış anlaşıldı. "Bu konu" derken senin bahsettiğin karekök sıkıştırma konusunu kastetmiştim. Yani bu işin olup olmayacağını adam akıllı izah edebilir diye düşünüyorum. Böyle bir konuya cevap verir mi bilmem ama verirse en azından senin hayal kurup kurmadığını, zamanını boşa harcayıp harcamadığını topluca anlayabilir ve rahata kavuşabiliriz ![]() |
bir zamanlar bende gb lerce verinin kb lere kadar düşebileceğine inanıyordum üzerinde bir süre uğraştım sonra bunun mümkün olmayacağını anladım özel veri tipleri bir yere kadar sıkıştırılabilir ama %100 random olan bir veri tipine yapılacak fazla birşey yok. örnek olarak iki haneli sayıyı tek haneye düşürmeye çalışırsak ham verimiz 00 01 02 03..99 tek hane rakam en fazla 10 tanesini kapsayabilir bitsel olarak 4 bit bir rakamı 3 bite bile düşürme şansımız yok birinde 16 diğerinde 8 kombinasyon var. tabiki bu kestirilemez veri tipleri için geçerli. zip, rar gibi uygulamaların ilk sıkıştırmadan sonra kestirilemezlik arttığı için 2. sıkıştırma işe yaramıyor. |
Aklı kullanıp algoritma geliştirelim diyorsunuz fakat konu başlığına dini içerik eklemişsiniz. Din ve akıl bir arada bulunmaz. İşiniz baya zor yani. |
video ses gibi özel veri tipleri için bu formatlar hakkında bilgi edinmek lazım ama veri tipi özel değilse bunun çözümü malesef yok. örnek olması için ufak bir kod yazdım bu kodu çalıştırın 1mb lik bir dosya oluşturacak sonra winrar ile sıkıştırmayı deneyin her seferinde farklı değerlere sahip dosya oluşacak ben birkaç sefer denedim çoğu zaman 1 bayt bile sıkıştırmadı.
|
Sevgili SEYFO cum ![]() Ancak veri kayıpları gerçekleşen aşamalar sadece "Quantization" ve diğer "Transformation" aşamalarında oluşur ve bunlarla veri sıkıştırılmaz, sadece gereksiz olanları istenen boyutlarda atılır. Sıkıştırma kısımları yine kayıpsız algoritmalarla gerçekleştirilir. İşte böyle durumlarda kayıplı "formatlar" meydana gelir. Yani pinekleyen bir programcı olmasam da bu konuda yellenmek yerine daha sağlam şeyler yazabiliyorum naçizane. Konu ile alakalı lafın varsa buyur yoksa "Naş Naş" canım ![]() |
Kayıplı veya kayıpsız olarak sıkıştırılmış veriler normal şartlarda daha fazla sıkıştırılamazlar. Ancak istisna olarak PAQ serisi algoritmalarında bu durum biraz istisna oluşturmaktadır. Bu serideki algoritmaların çalışma performansları anormal yavaştır. Sıralı şekilde bit değeri tahminine dayalı olarak çalışırlar. Ancak onlarda da bir limit var tabi ki. Örnek linkleri vermek isterdim ama bazı "TİPLER" rahatsız oluyormuş maalesef. Şimdilik idare edin ![]() |
veri tiplerine göre çeşitli algoritmalar yazılır ama demek istediğim bunun sonu yok bir önceki mesajımda yazdığım gibi 4 bitlik bilinmeyen bir sayıyı 3 bite düşürmenin kesinliği yok verdiğim kodda 1 megabayt lık dosya rarlanınca 158 bayt daha büyük çıkıyor winrarın kafa bilgisi sanırım mevcut algoritmalar işe yaramayınca kafa bilgisini yazıp dosyayı kopyalıyor çünkü işlem yapamaya kalkarsa orijinal boyutundan daha büyük boyut çıkacak veri hakkında bilgiye sahipsek en uyumlu algoritma seçilir eğer bilinirlik oranı %0 olan veride işlem yaparsan veri boyutu kadar algoritma yazman gerekebilir ozamanda hangi algoritma kullanıldı bilgisiyle dosya boyutu daha büyük çıkacak ![]() |
yapmak istediğin şey hem kayıpsız sıkıştırma hemde aynı işlemi defalarca aynı veriye uygulama eğer doğru anlamışsam (eskiden bende aynı şeyin olabileceğini düşünüyordum cahillik diyorum şimdi ![]() yapabileceğin şey veriyi analiz ettikden sonra yoğun bölgeye göre işlem yapmak aynı veriye 2. sefer işlem yaparsan işe yaramayacak çünkü 1. işlem yoğun bölgeyi zayıflatacak. 1mb lık dosyayı 10kb ye düşürdün diyelim 1mb de kaç kombinasyon var 10kb de kaç? yalnızca o dosyaya özel bir işlem olur 1mb lik dosyadaki kombinasyon değiştikçe çıktı boyutu büyür bir yerden sonra çıktı boyutu orijinal boyutu aşar. |
only for silicon-based computers : λ∈[(ArgMax⇔>∀xω1)→(ArgMin⇔<∀xω9)]
only for quantum based computers : √λ≅X^Y∓Z
guidebook to understand formulas :https://en.wikipedia.org/wiki/Glossary_of_mathematical_symbols
if this formula has not been defined before; may not be limited under any license.
and humanity's common property.
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
< Bu mesaj bu kişi tarafından değiştirildi DH Anonim -- 22 Nisan 2022; 9:32:56 >
Bu mesajda bahsedilenler: @burak jr