Arama butonu
Bu konudaki kullanıcılar: 3 misafir, 2 mobil kullanıcı
148
Cevap
13533
Tıklama
0
Öne Çıkarma
Cevap: Histogram Based, Real Time Lossless Data Compression Algorithm λ∈[(ArgMax⇔>∀xω1) (5. sayfa)
S
6 yıl
Yüzbaşı

Eveeet, maalesef bir kere daha haklı çıkmış olduk. Arkadaş bırakın basit programlamayı daha Excel bile kullanamıyor. Çok basit bir şey istedik, uygulamalı göster ve çöz istedik. Utanmadan sıkılmadan daha cevap yetiştiriyor. Ulan deveninn kulağını yapamayan bize akıl vermeye kalkıyor, Matematikten bahsediyor Bundan öncede senin gibi çok tombalağı tokatlamışlığım var. Komik duruma düştüğünün farkına varmayacak kadar ergensin o kadar.

"aşüfte" kelimesini excel de anlattığın şekilde uygula ve çöz bekliyoruz. O kadar da bilgisiz, beceriksiz olamazsın herhalde değil mi? Sonuçta ortaokul öğrencileri bile artık bu işlerle uğraşıyorlar.

Kolmogorov ve Entropi konularını da sayemde araştırıp biraz olsun bilgi sahibi olmuş olabilirsin ne güzel
Bu arada Köşelerini iyice zımparaladığın jetonu ne yaptığını da merak ettim


Bu mesaja 1 cevap geldi.
T
6 yıl
Yarbay

R.M. Stallman özgür yazılım en iyisidir diye tartıştı ama GCC, Emacs, Readline, gibi programlar yazdı ve özgür yazılım lisansı GPL ile dağıttı yani adam tartıştığı şeyi üretti ve insanlar tarafından denebilmesini sağladı. Şu anda Stallman o şeyi saatlerce tartışsa anlatsa dinlerim cunku adam onu üretti. Nitekim o yüzden Stallman'ı sevmeyen de GPL'ı eleştiren de, Stallman'ın tartışmalarını dinliyor. Adam birşey üretmeden tartışsaydı kimse dinlemezdi.

O yüzden sen de dediğin şeyi önce bir üret,insanlar denesin. Bunu yapmadan tartışıyorsun. Kimse dinlemez. Üzgünüm.



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


Bu mesajda bahsedilenler: @ayhanarican
G
6 yıl
Yüzbaşı

bunun yazdığı algoritmayla "aşüfte" kelimesinden 3 bit kadar zarar ediyor 48 bitlik kelime 51 bit falan oluyor 51 biti dosyaya yazamayacağına göre daha uzun bir şey vermek gerek

burada harcadığı zamanla anlatmak istediğini rahatlıkla yazıp test edebilirdi, benim anlamadığım şey bu amaç ne?




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

quote:

sonuça biraz daha yaklaştın
ama tam sayı veren noktada sıkışıp kalacaksın !
bende daha önce burada sıkışıp kalmıştım.

sorunun çözümünü buldum,
ama insanlık buna hazır mı veya hazırlıklı mı !?

bu algoritma formülünü bulan adam
aslında büyük patlamanın formülünü bulmuş gibi olacak

tek bir zerre tanesinde sonsuz sayıdaki galaksiye ulaşmanın kağıt üzerindeki formülü
sınırsız sıkıştırma alanı anlamına geliyor.

sırf harita kelimesini kullandığı için yazıyorum
çünkü algoritma harita olmadan hiç bir işe yaramıyor.

pi ile olayı çözmeye çalışmak, algoritmayı sınırlı donanımda kullanılmasına sebep olur.
harita sistemi doğru ama çözüm pi değil ! :)
çözümü aslında daha da basit :)

çalışmalar konusunda PM den özel mesaj atabilirseniz.
ortak çalışma noktasında bir şeyler yapabiliriz.


bak burada ne yazmışsın, gb larca verinin 1 bite düşmesinden bahsediyorsun. üç farklı film dosyasını birer bite düşürdün sonra nasıl açacaksın? vahiymi gelecek derken bunu kast ediyorum. zor olanla imkansız olanı karıştırıyorsunuz.

üstün zekanız karışmasın diye örnek olarak 1 biti verdim.





< Bu mesaj bu kişi tarafından değiştirildi Guest-4D62BFE91 -- 2 Ocak 2020; 13:59:1 >


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

Determinist; bu SEO19 bit ve byte gibi temel kavramları sürekli karıştırıyor. Lütfen üstüne fazla gitme



T
6 yıl
Yarbay

Aşureye döndü konu :)



< Bu ileti mini sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
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şı

Bakın son yaptığım algoritmada text dosyalarında %85 oranında sonuç elde ediyorum.

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


Bir konuda çalışma yapan arkadaşlara çok iyi motivasyon kaynağısınız, tebrik ederim. Türkiye'de bu yüzden kimse bir şey yapmak, başarmak istemiyor. Başarmak daha kötü, çünkü başardıkça daha olumsuz eleştiriliyorsunuz.

Siz evinizde camış gibi yatıp bir şeyler yapanları eleştirin. Nasıl olsa dilin kemiği yok!





< Bu mesaj bu kişi tarafından değiştirildi ayhanarican -- 3 Ocak 2020; 18:45:54 >
Bu mesaja 2 cevap geldi.
T
6 yıl
Yarbay

Bu pek bişe ifade etmez cunku öncelikle sıkıştırılan dosya psps.txt içeriği belli değil.

İçinde sadece 1 olan 20MB'lık bir txt dosyasını %99.99 oranında sıkıştıran bir run-length encoding programını 5dk da yazabilirim (16 SLOC program)

Diyelim ki psps.txt normal bir dosya ve %85 oranında sıkıştırdı, extract ettiğinde aynı dosyayı elde ettiğini de gösterebilmen gerekli. Fakat tüm bunlara da gerek yok. WinRAR 6'yı yazan kişi hiç böyle şeyler yaptı mı? Hayır, WinRAR 6'yı yazdı ve piyasaya dağıttı ve su anda milyonlarca kişi kullanıyor. Budur.



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

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

quote:

Orijinalden alıntı: ProjectMan

Bu mesaj silindi.
Aynen kıskandı biraz.

Seo sen de özelden yazıyorsun fakat kendi üyeliğini özel mesajlara kapatmışsın. Mesajım ulaşmayınca bunu kasıtlı yaptığını düşünüp arkadaşlığı sonlandırdım.



A
6 yıl
Onbaşı

Gerçekten işe yarar bir sıkıştırma algoritması yapmayı planlıyorsanız ve sıkıştırma haritası kullanmadan bunu başarmak için tree yapılarını çok iyi öğrenmeniz gerekir. Aslına bakarsanız bir çok dosya formatı için yapabileceğiniz yüzlerce hatta binlerce sıkıştırma algoritması vardır. Bunlardan birini yapmaya çalışan birine hak etmediği kadar olumsuz yorum yazdınız.

Yaptığımız çalışma illa bilinenlerin en iyisi olmak zorundaymış gibi mesaj yazmayın. Elbette bu nihayi hedefimiz ancak bunu ilk seferinde başarmak o kadar kolay değil.



A
6 yıl
Onbaşı

quote:

Orijinalden alıntı: Tuğkan-0153

Bu pek bişe ifade etmez cunku öncelikle sıkıştırılan dosya psps.txt içeriği belli değil.

İçinde sadece 1 olan 20MB'lık bir txt dosyasını %99.99 oranında sıkıştıran bir run-length encoding programını 5dk da yazabilirim (16 SLOC program)

Diyelim ki psps.txt normal bir dosya ve %85 oranında sıkıştırdı, extract ettiğinde aynı dosyayı elde ettiğini de gösterebilmen gerekli. Fakat tüm bunlara da gerek yok. WinRAR 6'yı yazan kişi hiç böyle şeyler yaptı mı? Hayır, WinRAR 6'yı yazdı ve piyasaya dağıttı ve su anda milyonlarca kişi kullanıyor. Budur.
Siz sıkıştırma oranını çok yanlış anlamışsınız. Bu oran compressedSize / orginalSize olarak hesaplanır.

Bahsettiğiniz dosya için %00.01 demeniz gerekirdi. Hadi yapın ve paylaşın.

1[#10#13]
1[#10#13]
1[#10#13]
.
.
.
1[#10#13]
1[#10#13]
1[#10#13]
[#0]

Text doyası 10 bin satır 1 içersin ve siz bir sıkıştırma algoritması yapıp %00.01 oranında sıkıştırın ben de alkış tutayım.





< Bu mesaj bu kişi tarafından değiştirildi ayhanarican -- 3 Ocak 2020; 20:8:26 >
Bu mesaja 1 cevap geldi.
G
6 yıl
Yüzbaşı

quote:

Orijinalden alıntı: Tuğkan-0153

Aşureye döndü konu :)
quote:

Siz evinizde camış gibi yatıp bir şeyler yapanları eleştirin. Nasıl olsa dilin kemiği yok!

aşurenin tuzu eksik kalmış onu da sen kat.

@SEO19 dua et problemleri yazanlar var.


Bu mesaja 1 cevap geldi.
A
6 yıl
Onbaşı

quote:

Orijinalden alıntı: Guest-4D62BFE91

quote:

Siz evinizde camış gibi yatıp bir şeyler yapanları eleştirin. Nasıl olsa dilin kemiği yok!

aşurenin tuzu eksik kalmış onu da sen kat.

@SEO19 dua et problemleri yazanlar var.

Alıntıları Göster
Bir şeyin yapılamayacağı ile ilgili tek dayanağınız, bugüne kadar Türkiye'den birilerinin tüm dünya genelinde kullanılan, bir probleme çözüm getiren, bir ürününün olmayışıdır. Bunu başarmak isteyenleri de tıpkı Pavlov'un maymunları gibi aşağıya çekmek istiyorsunuz. Falan falan denedi, bir şeyler yaptı olmadı, eee? Sen de yapma! Hepinizin ortak noktası bu! Pavlov'un maymunlarından bir farkınız olsun. Yapılamayacağını söylemek yerine; "Daha başarılı olmak için neler yapılabilir?" ya da en çok hata nerede yapılıyor? Kendinizi daha bilgili ve konuya hakim göstermek istiyorsanız, daha yapıcı ve bilgi içerikli yardımı dokunacak yorumlar paylaşın. Kormogolov karmaşasından hiç bahsettemek olmazdı ancak zeki ve motivasyon dolu bir insan için bunun gibi (termodinamik kanunları, entropi, kormogolov karmaşası) bir şeyin yapılabilmesininin fiziksel sınırlarını ortaya döktüğünü sanan çok bilmişlerin kanıtlanmamış tezlerine aldırmadan başarılı ürünler ortaya çıkarma potansiyeli taşıyanlara daha başka söyleyebileceğiniz bir şeyler olmalıdır.





< Bu mesaj bu kişi tarafından değiştirildi ayhanarican -- 3 Ocak 2020; 20:32:10 >
Bu mesaja 1 cevap geldi.
G
6 yıl
Yüzbaşı

Ya hep bu konuyu görüyorum. Kardeşim 7 yıldır şu konuyu burda tartışacağına c(alt),c++(alt orta) seviyeli bu işleri yapabileceğin bir dilleri öğrenip 7 yılda bu dediklerini yapabilirdin. Peki neden öğrenipte yapmadın hala burada tartışıyorsun ? Karşı gelenlere yeniden cevap yazma tenezzülünde bulunuyorsun ki senin yapman gereken şey oturup üretmek. Zaten karşı gelenlere verdiğin cevaplar aynı sayılır. Algoritmadan bahsedip imkansız değil devler bunun peşinde diyorsun e o zaman üret şunu artık buralarda olur olmaz tartışacağına algoritmayı geliştirirken ki sorunlarını yaz da öyle cevaplayalım, tartışalım.



A
6 yıl
Onbaşı

Tamam o halde ben bit haritalarını saklamak için çok hızlı çalışan ve bit mapping kullanan kendi BitArray sınıfımı yazdım. Mesela siz de bu sınıftan türeyen ve BitStack isimli bir sınıf yazın. Böylece WriteNBit(byte byte, byte bitCount) ve ReadNBit(byte byt, byte bitCount) methodlarını içersin ve bit yığınına istediğimiz türde verileri sıkıştırıp saklayabilelim. Bu iki metodu short, ushort, int, uint, long, ulong türleri için override edin. Böylece tüm integer türlerinin istenilen bitlerini bit yığınında saklayabileceğimiz bir sınıfımız olur.

public class MyBitArray : IDisposable
{
byte[] bytes;
public MyBitArray(long limit, bool defaultValue = false)
{
long byteCount = (limit & 7) == 0 ? limit >> 3 : (limit >> 3) + 1;
this.bytes = new byte[byteCount];
for (long i = 0; i < byteCount; i++)
{
bytes[i] = (defaultValue == true ? (byte)0xFF : (byte)0x00);
}
this.limit = limit;
}

public MyBitArray(long limit, byte[] bytes)
{
this.limit = limit;
this.bytes = bytes;
}

public bool this[long index]
{
get
{
return getValue(index);
}
set
{
setValue(index, value);
}
}

bool getValue(long index)
{
if (index < 8)
{
return getBit(bytes[0], (byte)index);
}

long byteIndex = (index & 7) == 0 ? ((index >> 3) - 1) : index >> 3;
byte bitIndex = (byte)(index & 7);
return getBit(bytes[byteIndex], bitIndex);
}
void setValue(long index, bool value)
{
if (index < 8)
{
bytes[0] = setBit(bytes[0], (byte)index, value);
return;
}

long byteIndex = (index & 7) == 0 ? (index >> 3) - 1 : index >> 3;
byte bitIndex = (byte)(index & 7);

bool old = getBit(bytes[byteIndex], bitIndex);

bytes[byteIndex] = setBit(bytes[byteIndex], bitIndex, value);
}

bool getBit(byte byt, byte index)
{
return ((byt & (1 << index)) >> index) == 1;
}

byte setBit(byte byt, byte index, bool value)
{
return (byte)((byt & ~(1 << index)) + (value ? 1 << index : 0));
}

public void Dispose()
{
GC.Collect(2, GCCollectionMode.Optimized);
}

private long limit;
public long Limit { get { return limit; } }
public byte[] Bytes { get { return this.bytes; } }
}





< Bu mesaj bu kişi tarafından değiştirildi ayhanarican -- 3 Ocak 2020; 20:57:7 >
Bu mesaja 1 cevap geldi.
A
6 yıl
Onbaşı

quote:

Orijinalden alıntı: Tuğkan-0153

Donald Knuth'un bir sözü var bilir misin: Kodlar bilgisayarda çalıştırması için değil, insanlar tarafından anlaşılması için vardır, diye. Yukarda bir kod vermişsin de tek satır comment yok, değişken isimlerinden amaç anlaşılabilirlik yok.

Yok; bahsettiğiniz şeyi üretip binary haline getirmediniz, tasarım, algoritma, kod olarak tartışaım diyorsunuz o bakımdan yani.
Hepi topu kullandığım 5 değişken var. bytes, byteCount, bitCount, limit, index.

Bunların ne olduğunu değişken isimlerinden anlayamıyorsan bence programlama öğren, o zaman anlamaya başlayacaksın.


Bu mesaja 1 cevap geldi.
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.



S
6 yıl
Yüzbaşı

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!





< Bu mesaj bu kişi tarafından değiştirildi Stack -- 3 Ocak 2020; 23:9:46 >

< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
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 >