PI tabanlı sıkıştırma algoritmaları var mı?


11

Bildiğimiz şey, inf'nin sonsuz olması ve olası her sonlu basamak dizisini ( büyük olasılıkla sıralı dizisi ) içermesidir .

Son zamanlarda, oluşturduğunuz (veya başka herhangi bir dosyanın) her dosyanın olduğunu veya yaratacağınızı varsayan bazı πfs prototipi gördüm, zaten var, bu yüzden çıkartma meselesi. Dosyalarınızı pi meta verilerine dönüştürebilen piFile de vardır .

Pi'nin n . İkili basamağını hesaplamamıza izin veren BBP tipi formül (deneysel matematiğin bir parçası olarak) zaten var . Böylece, başlangıç ​​ve veri uzunluğumuzun konumunu saklayarak, teorik olarak ilgimizi çeken verileri çıkarabiliriz. Buna karşı, meta verilerimizin (örn. Verilerimizin ofseti) çıkarılan verilerden daha büyük olabileceğine dair bazı argümanlar vardır . Matris sembolleri ve π, daha verimli hale getirmek için taban 256'da kodlanabilir ( şakaya bakın ).

Yukarıdakilere dayanarak, ana sorum:

  • PI tabanlı sıkıştırma algoritmaları var mı?

Değilse, mantıklı mı? Yoksa bu alanda herhangi bir araştırma yapıldı mı?

Ya da belki π doğru değil, öyleyse Euler sabiti veya Tau (τ)? Fark eder mi?


Sayılarla kirli kelimeleri aramak, onları sözlükte aramaktan çok daha eğlenceli!  ASS: pi pozisyonu 590,725 (ascii kodlaması).  BUTT: konum 177,031,174.  BOOB: pozisyon 32.355.500.  8 == D 158.907.339 konumunda.  SADECE Söyleyebilirim: NASIL EROTİK

Fotoğraf: Dinozor Çizgi Romanı


Ayrıca bakınız:


15
Sevgili T-rex, 2. karedeki sonucunuz hiçbir şekilde 1. karedeki ifadeden kaynaklanmaz. Türlerinizin öldüğüne şaşmamalı. Sevgiler,
David Richerby

2
aslında herhangi bir uzun basamak dizisi genel olarak görünür olup olmadığını belirlemek için açık ve / veya muhtemelen kararsız bir sorun .... kolmogorov karmaşıklık teorisiπ
vzn

1
Mümkün olan her biti (veri) için, pi üzerindeki örneği çoğunlukla Konumda (meta veri) bulabildiğinizden emin misiniz ? Bunun "sıkıştırma" olarak adlandırılması gerekir. N2N
Константин Ван

Yanıtlar:


17

Öneriniz pek çok nedenden dolayı pek mantıklı değil. Her şeyden önce, büyük bir dosyayı sıkıştırmaya çalışırken, örneğin bayt boyutunda bir dosya , ikili genişlemesinde dosyanızla uyumlu bir yer bulmanız gerekecektir . Dosya bit uzunluğunda olduğundan, bu yerin . Bit civarında olması beklenir . Bu yüzden bulmak oldukça zor olurdu. Bunun nedeni sadece genişlemeye girmek zorunda olduğumuz için değil, aynı zamanda bir hit bulmadan önce farklı yeri denemeyi beklediğimiz için .16π12821282128

İkincisi, bazı durumlarda şemanız büyük bir sıkıştırma ile sonuçlanırken, bu sadece belirli bir dize genişlemesinde nispeten erken göründüğünde gerçekleşir . Bu tür bir dizgeyi sıkıştırmak istemenizin hiçbir nedeni yoktur. Buna karşılık, diğer sıkıştırma algoritmaları verilerdeki yapıyı bulmaya çalışır ve böyle bir yapı varsa, o zaman her zaman onu kullanabileceklerini gösteren garantilere sahiptir.π

Değişen başka bir sayı ile resmi değiştirmek olmaz. Algoritma çok spesifiktir, sadece gerçekten ilgilenmediğimiz dizeleri sıkıştırır; ve sıkıştırma aşamasında çok verimsizdir.π


14

Yuval'ın cevabına dayanarak, biraz farklı bir açıklama ve sorunu aydınlatmaya yardımcı olacak bir örnek.

teori

Dosya alma16128

  1. π
  2. 128

2128

  • bit kalıbı için derin bir arama; ve
  • 2128

ππ

Ayrıca bkz . , Bilgi entropisi .

Misal

log2(938933556)29.830

π597,507,393log2(597507393)29.230

Belki sayıları yığınlayabiliriz?

  • 1,124
  • 1,216
  • 11,727

36

  • 15,312,393
  • 8

2730

N


2

PI tabanlı sıkıştırma algoritmaları var mı?

evet, https://github.com/divinity76/pi_compression

mantıklı geliyor?

hayır, ofsetleri depolamak genellikle kaydettiğinizden daha fazla disk alanı gerektirir, en azından yukarıdaki uygulama ile (bununla ilgili geliştirilebilecek 3 önemli şey, pi'nin ikili gösteriminin sadece ilk 2 ^ 32 baytını dikkate alır ve ofset başına eşleşen bayt sayısını, yani 8 biti depolamak için aşırı miktarda bit kullanır, testler 3 bitin en uygun olacağını gösterir ve yalnızca tam baytlık maçları dikkate alır, bu nedenle bir yerde 15 bitlik eşleşme varsa, sadece 8 bitlik bir eşleme olarak düşünülebilir .. ayrıca bir baytın son 4 biti eşleşir ancak # 3 bitmez ve bir sonraki bayt eşleşmelerinin ilk 4 biti ancak bit # 5 değilse, bir eşleşme olarak kabul edilmezse herşey)

Yoksa bu alanda herhangi bir araştırma yapıldı mı?

uhm emin, bu yüzden yukarıdaki uygulamayı yazdım ve sonuçlar pi'nin ilk 4GB'si içinde, 4 eşleştirme baytını bulmanız muhtemel görünüyor ... imkansız değilse, çok zor olan her şey, herhangi bir sıkıştırma kazanmak için, en azından başarısız oldu. (ancak uygulamam yukarıda açıklandığı gibi en uygun değil) - ayrıca sıkıştırma çok yavaş, ancak uygulamam tek iş parçacıklı, ancak algoritma, birisinin kod yazmasıyla silahlanabiliyorsa, mevcut çekirdeklerin sayısı.

dekompresyon çok hızlıdır.


0

PI tabanlı sıkıştırma algoritmaları var mı?

ππ

XπX

ππ

herhangi bir matematik sabitinin "tüm dizeleri içeren" dikkat çekici özelliğe sahip olduğu gösterilse bile, basit bir argüman sıkıştırma algoritmasının dizenin konumunu aramak için "çok fazla zaman" harcayacağı ve konumunu tanımlamanın genellikle uzun (er) basamak dizisi.

Ayrıca bakınız / kontrast / benzer yüksek oylu soru ile uzlaşmaya çalışın pi'nin bazı basamak dizileri içerip içermediğine nasıl karar verilebilir . (cs.se) (ipucu: başlık biraz yanıltıcı olarak görülebilir)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.