Arama butonu
Bu konudaki kullanıcılar: 1 misafir
148
Cevap
13521
Tıklama
0
Öne Çıkarma
Histogram Based, Real Time Lossless Data Compression Algorithm λ∈[(ArgMax⇔>∀xω1)
D
13 yıl
Yarbay
Konu Sahibi

Histogram Based, Real Time Lossless Data Compression Algorithm

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 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.

Üye Ol Şimdi Değil





< Bu mesaj bu kişi tarafından değiştirildi DH Anonim -- 22 Nisan 2022; 9:32:56 >


Bu mesajda bahsedilenler: @burak jr
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
Yoruma Git
Yorumun Devamı Tuğkan-0153 - 6 yıl +4
T
9 yıl
Teğmen

quote:

Orijinalden alıntı: playstyle

bundan 5 yıl kadar önce !

quote:


(x^y+z) karekök sıkıştırma algoritması ne zaman hayat bulacak !?
taninmayan-68170 | 04 Ocak 2007 12:36

(x^y+z) karekök sıkıştırma algoritması ne zaman hayat bulacak !?
bilinen veya bilinecek en uzun rakamı sayıyı bilimsel olarak en kısa haliyle matematiksel olarak ifade etmek istenirse var sayalım ki”15241578753238669120562399025″ değerinin karekökü : “123456789012345″ yani formulasyon olarak kayan ve devreden sayılarını da baz alırsak X^Y+Z formulasyonu ile hiç bir şekilde zip rar ve diğer sıkıştırma formatlarının 1kb bile sıkıştıramadığı bir dosya formatını kaba tabirle yukarıdaki örneğe göre 29 haneli bir sayıyı 15 haneye indirmek ki kaba tabiri ile düşük seviyede bir sıkıştırma ileherangibi bir dosyayı 2:1 oranında sıkıştırmak mümkün bu arada diğer idialar ise pek yabana atılacak cinstende değil örneğin 1 DVD yi bu şekildedefalarca kez sıkıştırarak 1mb a kadar düşürüle biliniyor yanlız kötü tarafı bu işlemin uzun sürebileceği için ne kadar küçük olursa açılmasıda o kadar zaman alacağı yönünde ve ön görülen tahminlere göre güncel bir pc nin 1mb lık bir DVD açması için 1 saat e yakın süreği öngörüsü varşu an sadece teoride mümkün ama pratikte ne zaman hayat bulacağı tartışma konusu , konu ile ilgili kaynak site arayanlara Google dankarakök ile binary dosya sıkıştırma diye aratılırsa bu konuda yurtdışındaki belli üniversitelerin çalışmaları hakında yorumlarını bulabilir , bir çok yorum şu anki hardware sistemlerinin bu işlem için yeterli olamayacağı gibi birçok akademik geyik cevaplarla da karşılaşmak olası , ama eninden sonunda olacak gibi :)


olaya farklı bir açıdan yaklaşan diğer birinin yazdıkları !

http://diovo.com/2010/01/the-perfect-compression-algorithm/

uzun lafın kısası vizyonu olan matematikten anlayan programlayıcı arkadaşlar lazım ! :)

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ç.



< Bu ileti tablet sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
T
9 yıl
Teğmen

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.



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


Bu mesajda bahsedilenler: @playstyle
S
6 yıl
Yüzbaşı

"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 ..."

Eyvah Eyvah... Bunlar 1970 lerde kaldı dostum lütfen ama!
Üstüne alınma sakın. Aslında bu durum bizim memlekette çok normal. Zaten bizim işimiz değil ki böyle şeyler. Kafa yormaya da değmez, yorana saygı duymaya da değmez. Elin gavurları yorulsun biz ne ki! Boş verin gitsin!

Güncel Codec Savaşları için;
https://www.ibc.org/delivery/codec-wars-the-battle-between-hevc-and-av1/2710.article
https://switchboard.live/blog/codec-hevc-vs-av1/
https://www.haivision.com/blog/broadcast-video/codec-wars-moving-forward-hevc/
https://www.streamingmedia.com/Articles/Editorial/Featured-Articles/Return-of-the-Codec-Wars-A-New-Hope-a-Streaming-Summer-Sequel-126339.aspx


Veri sıkıştırmanın önemi ve Makine Öğrenmesi ile ilişkisi için; lütfen ilk linki çok dikkatli okuyalım.
https://petewarden.com/2018/10/16/will-compression-be-machine-learnings-killer-app/
https://mlcompr.wp.imt.fr/
https://hackernoon.com/using-ai-to-super-compress-images-5a948cf09489
https://hal.archives-ouvertes.fr/hal-01819588/document





< Bu mesaj bu kişi tarafından değiştirildi Stack -- 29 Mart 2019; 17:19:39 >


Bu mesajda bahsedilenler: @vonderplanitz
S
6 yıl
Yüzbaşı

quote:

Orijinalden alıntı: Communist

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 ) bunu yapmanın mümkünü yok. önceki mesajımda çok basit bir şekilde açıkladım toplamda 16 kombinasyon alabilen veriyi 8 kombinasyona düşürmenin mümkünü yok geriye kalan 8 kombinasyonu ne ile temsil edeceksin?

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.
"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."

Yukarıdaki şekilde bilgi verdiğim halde ilginç cevaplar yazılıyor. Lütfen "PAQ 8" nedir inceleyelim!
https://www.wikizeroo.org/index.php?q=aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUEFR



S
6 yıl
Yüzbaşı

Geçmişin başarısızlığı mı ? Bunu diyen kim ? Hangi vasıfla veya bilimsel yaklaşımla ?

Eğer değerlerimiz çoğunlukla mükemmel karelerden oluşuyorsa, genel olarak sıkıştırılmış değerlerimiz orijinalden daha kısa olacaktır. Ancak böyle çok özel durumlar gerçek hayatta pek olası değildir. Aksi takdirde uzama söz konusudur. Karekök işlemi yüksek dereceli bitlerin ilk yarısını tutmak ve ikinci yarısını da kaldırmak anlamına gelir. Bu yüzden kayıplar oluşmaktadır. Literatürde de böyle geçmektedir. Yani kayıpsız şekli pratik kullanımda hiç uygun değil! Kayıplı sıkıştırma işlemleri için ise diğer bilinen yöntemlere nazaran daha az verimli.

https://www.quora.com/Could-square-roots-be-used-to-compress-data-and-treated-as-a-large-number

http://www.astro.lu.se/~lennart/Astrometry/TN/Gaia-LL-028-19990817-Lossy-compression-using-square=root-coding.pdf

https://authors.library.caltech.edu/17825/1/Bernstein2010p7278Publ_Astron_Soc_Pac.pdf





< Bu mesaj bu kişi tarafından değiştirildi Stack -- 4 Eylül 2019; 15:9:0 >


Bu mesajda bahsedilenler: @SEO19
C
6 yıl
Yüzbaşı

İndirdiğim yer -https://moisescardona.me/paqcompress-v0-1-released/

İşlem süresi bir buçuk dk gibi.
Sonsuz sıkıştırma zaten mümkün değil. Sıkıştırılmış dosya 2. sefer yine sıkışıyorsa algoritma problemlidir.





< Bu mesaj bu kişi tarafından değiştirildi Communist -- 5 Eylül 2019; 22:45:5 >

< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Stack
S
6 yıl
Yüzbaşı

Gerçek geliştiricileri tarafından derlenen en son PAQ8 Console sürümü:
https://encode.su/attachment.php?attachmentid=6715&d=1562845252

1 mb lik rastgele bir dosya bende ortalama masaüstü i7 bir işlemci ile yaklaşık 5 dk sürüyor. Ancak bu normal mod. Daha yüksek modlarda süre saatlere çıkıyor ve RAM kullanımı da 16 gb nin üstüne çıkıyor. Dediğim gibi bir kaç byte bile olsa azaltıyor ama arttırması mümkün değil. Yani sıkıştıramadığı durumlarda dosyaya yazmıyor ve orijinal dosyayı veriyor.

Neyse konu sahibi bu tür paylaşımlar yapmamıza kızıyor. Boş ver


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Communist
G
6 yıl
Yarbay

konu başlığını karekök olarak değerlendirip sayının uzunluğunu da veri boyutu kabul edip aşağıdakini yazdım ancak bir tasarruf olmadı
https://dotnetfiddle.net/Widget/Preview?url=/Widget/ooJRz1



S
6 yıl
Yüzbaşı

Keşfedilme ve yeni yaklaşımlar mevzusu için hemen canlı örnekler vereyim:

25 yaşındaki JPEG için kayıplı ve kayıpsız bir çok alternatif geliştiriliyor. Yani JPEG in yerine geçmesi planlanan daha verimli ve gelişmiş bir format lazım. Bu alanda başı yine Google çekiyor. WebP, JPEG XL gibi formatları çok güçlü ekiplerle geliştiriyorlar. Diğer yandan BPG gibi bir alternatif mevcut. (http://xooyoozoo.github.io/yolo-octo-bugfixes/#swallowtail&jpg=s&bpg=s) Elbette daha birçoğu var. Bizlerin bu taraklarda herhangi bir bezi olmadığı için sadece aşağıdaki bahsi geçen teknolojilerin lisans ücretlerini ödeyip kullanıyoruz ve bununla da yeri geldiğinde gurur bile duyuyoruz

Ses için de MP3 e çeşitli alternatifler geliştirilmekte. Video için de aynısı geçerli. MP4 yerine MP5 mi yoksa AV1 mi geçecek ortalık fena halde karışık. MP4 ve MP5 için muazzam (!) lisans ücretleri bulunmakta ve bunu ödememek için büyük bir topluluk tarafından(IBM, Microsoft, Google, Amazon, Cisco, AMD, Intel, Samsung...) AV1 geliştiriliyor. Ancak sonuç pek iç açıcı değil maalesef. (https://aomedia.org)

Yani mevzu basit olsa bunca adamın burada işi ne ki? Özetle bu iş bitmedi ve biteceğe de benzemiyor (patent, patent, patent). Aslında konu sahibi SEO19 bu konuda çok haklı.

İyi bir sıkıştırma alternatifi bulunsa bile vonderplanitz in de dediği gibi bunu adam gibi performanslı şekilde koda döküp ürün haline getirebilecek birileri gerekli olacak. Ve bu gerçekten uzun soluklu bir süreç olacak. Ancak bizim memlekette çok yüksek meblağlar bile ödense o türden kişileri bulmak imkansıza yakındır.

https://www.mpegla.com/programs/avc-h-264/licensees/
https://www.cnx-software.com/wp-content/uploads/2017/10/HEVC-License-Price-List.png





< Bu mesaj bu kişi tarafından değiştirildi Stack -- 8 Eylül 2019; 23:5:48 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @vonderplanitz
T
6 yıl
Yarbay

Joel Spolsky, 21.Mart.2000https://www.joelonsoftware.com/2000/03/21/converting-capital-into-software-that-works/ makalesinin giriş paragrafıdır:

The common belief is that when you’re building a software company, the goal is to find a neat idea that solves some problem which hasn’t been solved before, implement it, and make a fortune. We’ll call this the build-a-better-mousetrap belief. But the real goal for software companies should be converting capital into software that works.


Türkçesi (birebir değil, düzeltmeli ve hafif yorumlu şekilde)

Yazılım deyince herkes bir problemi çözen güzel bir fikir bulup onu uygulayıp küçük bir servet yapmayı anlıyor. Bu yaklaşıma biz 'daha iyi bir fare kapanı yapmak' diyoruz. Fakat yazılımdaki asıl amaç, daha iyi fare kapanı yapmak değil, parayı etkili bir yazılıma dönüştürmek olmalıdır.

Spolsky'nin açısından bakınca, bu konu külliyen gereksiz.

Alttaki yorumlar bu konu ile ilgili değil, geneldir:

Bir yazılım işinden bahsetmeden önce ortada para olacak, bütçe olacak.
Amerika ve Avrupa'da yazılımla ilgili iş ilanlarının coğunda para ve bütçe önceden belirtilir. Programcı paraya ve yapılacak işe bakar ve bu parayı ne kadar etkili şekilde yazılıma dönüştürebileceğini düşünür. ABD ve AB'de ayrıca devlet desteğiyle başlanan yazılım projeleri hedefi 12'den vuran işler çıkarmıştır. 1980'lerde Unix kernel yeni donanımlar, artan RAM kapasiteleri karşısında problem yaşıyordu. DARPA (Defense Advanced Research Projects Agency) CMU universitesinde 7 kişilik bir ekibi finanse ederek Mach kernel'i destekledi. Mach kernelden alıntı yaparak macOS başta olmak üzere birçok Unix sistemi çekirdeğini güncelledi, bugünkü OS'lerin bu kadar sorunsuz olmasına katkıda bulundu.

İlla ki para olmak zorunda da değil. Tox projesi örneğin hiç kimsenin metelik atmamasına rağmen popülerlik kazandı, ve 2019 da başarıyla geliştiriliyor, neden? Cunku insanların Internette güvenli, mahremi ve güvenilir iletişim yapmasını sağlayarak gerçek bir eksiği kapatıyor. Zcash projesini bilir misiniz? O da güvenli ve mahremi iletişimin finansal tarafta da uygulanmasını sağlıyor. Şöyle düşün, ben sana 100TL göndermek istiyorum ama kimliğimi açığa çıkarmadan göndermek istiyorum, nasıl yaparım?

Internette sorun olarak gördüğüm ve yazılımla çözülebilecek birşey var: Merkeziyetçi web siteleri. Örneğin forumlar. Örneğin Youtube, Twitter, Linked-in.. Örneğin sahibinden, letgo. Bu merkeziyetçi siteler, herşeye sahip konumda. Sen bir içerik gönderiyorsun demi? O içerik senin değil, gönderdiğin sitenin malı artık. Sahibinden 'e ilan aç. Ürünün resmine logosunu basar, bu resim benim anlamında. Forumda konuşulması yasak konular var. Yok yanlış anlamayın, ülke yasalarına aykırı konular değil, sadece forumun kurallarına aykırı konular. Youtube yorumlarda özgür gibisin fakat orada da gönderidğin videolarda aynı keyfi kurallar uygulanıyor. YT begenmediği videolara bi bahane bularak sansür uyguluyor yani yayından kaldırıyor. Fakat bi sorun daha var: YT, diger tüm siteler gibi, kullanıcılara GSM no girmesini dayatıyor ve bunu da "sizin hesap güvenliğinizi düşünüyoruz" gerekçesine bağlıyor, yani 8 yaşındaki cocuğa kural dayatan ebeveynlik yapıyor size YT. Tüm bu bahsi geçen problemlere karşı IPFS gibi dağıtık/distributed ve E2E / Uç uça şifreli iletişim protokolleri ile çözüm geliyor. IPFS sadece bir örnek.

Internette Youtubeta forumlarda, site sahibi tarafından "içerik silme" problemi var. Bir içerik görüyorsun, takip ediyorsun, yorum gönderiyorsun. Sonra bir bakmışsın içerik silinmiş! IPFS çözümü ile bu içerik silme tarih olacak cunku herkes ilgilendiği içeriği kendi cihazında taşıyacak / host edecek. İçeriği böyle sitelere girip textbox içinde değil, kendi kullandığın editörde düzenleyip göndereceksin; VIM, Atom, Emacs gibi editörlere eklenecek plugin ile içeriği yazıp, editör içinden göndereceksin. Mod'un teki cıkıp 10bin kişinin takip ettiği bir içeriği bi kalemde silip atamayacak.



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

A
6 yıl
Onbaşı

quote:

Orijinalden alıntı: ProjectMan

Bu mesaj silindi.
O benim için mesele bile değil. 4 bytelık işaretsiz bir tamsayının kare köküne en yakın sayı şu formül ile hesaplanabilir. Zaten buna totent deniyor ve şöyle hesaplanıyor.

var sqrt = Math.Pow(Math.E, BigInteger.Log(bigNumber) / 2);
var startNumber = Convert.ToUInt64(sqrt);

BigIteger.Log() yerine Math.Log da kullanılabilir.

Şu kodu incelersen anlayacaksın.

X ^ 2 + D yöntemini kullanıyoruz.

Sadece bu yöntemi kullanmak istersek.

Burada X'i hep asal seçip X'in asal indeksini saklarsak X için 13 bit, D için de 17 bit kullanabiliriz. D bu durumda en fazla 131071 olabilir. Eğer rastgele seçilmiş 4 byte lık N sayının %50'sinden fazlasını bu son yöntemde gösterebilirsen ki - bu olasılık hesaplanabilir - kesin bir sıkıştırma algoritması üretmiş oluruz.

Şu kodu incele anlayacaksın.
https://dotnetfiddle.net/m1RE5W



T
6 yıl
Yarbay

'İmplementasyon' nedir bilir misin. Bir implementasyon ile gel, deneyelim.

xz, 7z, bz2, winrar 6, vs den daha etkili bir programı görelim. O durumda zaten senin cok anlatmana gerek kalmaz. Program kendi kendini anlatır (tekrar oldu :)

Bu şekilde programın kendisi olmadan anlatıp durursan bu iş alttaki gibi "sıfırdan OS geliştirdim" konularına benzer ve o konuları açanlar gibi zan altında kalırsın:

https://forum.donanimhaber.com/fegeyaos-sifirdan-gelistirilmis-isletim-sistemi--141346011
GecOS sıfırdan geliştirilen bir İşletim Sistemi
https://larsmalmsteen.github.io/



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


Bu mesajda bahsedilenler: @SEO19
A
6 yıl
Onbaşı

Sen açıklama satırları olan kodları okumayı seviyorsan ben sana bol bol kod göndereyim.
https://github.com/ayhanarican/apiogenesis
https://github.com/ayhanarican sayfasından diğerlerine de bakabilirsin.



A
6 yıl
Onbaşı

quote:

Orijinalden alıntı: Stack

Amatör adam gördüm ama böylesi nadir çıkar.

Öncelikle 10 bin satır 1 içeren veri toplam 30 bin byte eder(her yeni satır için "\n" 2 byte yer tutar) ve bu içerik net olarak biliniyor ve RLE ile toplamda 3 byte+boyut (14 bit) eder. 14 biti 2 byte alırsak toplam 5 byte ile ifade edilir ve sorunsuz çözülür. Yani 5/30000 =0,0001666. Alkışa gerek yok!

Şimdi gösterdiğin text dosyanı ve o yaptığın exe yi yolla bakalım ne olacak. Nasıl bir text miş nereye kadar sıkıştırılabiliyormuş görelim. Sen kendin kaşındın. Yolladın yolladın. Yollamazsan vay haline!
Aslına bakarsan bu veri yer bile kaplamaz. İçeriği ve deseni bilenen bir veriyi üretecek algoritmayı hazırlarsın. İlla bir şeyin boyutu olacaksa bunu üreten kodun binary'si saklanır olur biter.

Örneğin ardışık asalları saklamak isterseniz yine aynı durum geçerlidir. Stackoverflow'da bununla ilgili bir paylaşımım olmuştu.

İlk olarak her sayı için bir bit ayırırsınız ve asal olanları 1 diğerlerini 0 olarak sıralarsınız. Bu 2 ^ 32 sayısına kadar 512 MB yer kaplar.

Sonra düşünürsünüz 2'den büyük bütün asallar tek sayıdır. O halde çift sayılara karşılık gelen bitleri saklamaya gerek yok dersiniz ve veri boyutu 256 MB'ta düşer.

Sonra bir şey daha keşfedersiniz. 3'ten büyük bütün asal sayılar 6k - 1 ve 6k + 1 olarak ifade edilebilir. Sonra mod 6 için yeni bit diziliminizi oluşturursunuz ve 171 MB' a düşer.

Sonra mod 30 ve daha niclerini kullanarak veriyi kısaltırsınız ancak asal sayıları saklamak yerine onu oluşturan algoritma daha az yer kaplayacaktır. :)

Örneğin bu kod limit sayısına kadar olan asal sayıları size verir. Hem de çok hızlı bir şekilde. ü


/*
The Sieve Algorithm
http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes
*/
numbers = new MyBitArray(limit, true);
for (long i = 2; i < limit; i++)
if (numbers[i])
for (long j = i * 2; j < limit; j += i)
numbers[j] = false;





< Bu mesaj bu kişi tarafından değiştirildi ayhanarican -- 3 Ocak 2020; 23:29:34 >

T
6 yıl
Yarbay

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 :)
quote:


Sen açıklama satırları olan kodları okumayı seviyorsan ben sana bol bol kod göndereyim.
https://github.com/ayhanarican/apiogenesis
https://github.com/ayhanarican sayfasından diğerlerine de bakabilirsin.

"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ı :)





< Bu mesaj bu kişi tarafından değiştirildi Tuğkan-0153 -- 4 Ocak 2020; 0:36:39 >

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


Bu mesajda bahsedilenler: @ayhanarican
A
6 yıl
Onbaşı

"Şimdi gösterdiğin text dosyanı ve o yaptığın exe yi yolla bakalım ne olacak. Nasıl bir text miş nereye kadar sıkıştırılabiliyormuş görelim. Sen kendin kaşındın. Yolladın yolladın. Yollamazsan vay haline!"

Boşuna uğraşmayın o dosyayı benden daha iyi sıkıştıramazsınız. Ben daha iyi bir yöntem biliyorum. Buyurun önce siz deneyin.
https://filebin.net/9i5685xc34lcntt6/psps.rar?t=lunnltwn


Bu mesaja 1 cevap geldi.
S
6 yıl
Yüzbaşı

Yazdıklarında haklısın Determinist.
Ancak sonraki bahsettiğin rastgele veri ile üretilen dosya sıkıştırılabiliyor. Hem de %5 ten çok daha fazla. Aşağıdaki linkten indirip deneyebilirsin. Çalışması biraz yavaştır.
https://encode.su/attachment.php?attachmentid=7009&d=1571724344

< Resime gitmek için tıklayın >


Bu mesaja 1 cevap geldi.
K
5 yıl
Yüzbaşı

https://www.youtube.com/watch?v=2hVQwV6Ai-c
Buradan izleyebilirsin. İyi eğlenceler.



T
5 yıl
Yarbay

k'lı euler sayısını hesaplatabilir misiniz? basit bir soru. yeni algoritma tasarımı yapan kişilerin nasıl çözeceğini merak ediyorum. senin konulara ilgi gösteren, kod gönderen K110' a sordum, yapamadı. ayhanarican yapabilir belki :) soru burada:
https://forum.donanimhaber.com/mesaj/yonlen/141759076



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


Bu mesajda bahsedilenler: @SEO19