yardıma ihtiyacım var! Görev çözülmedi, demirin sınırlamalarıyla karşılaşıyorum - sayfa 5

 

Aradığınız şey sıkıştırılabilir ve sıkıştırılmış olarak aranabilir. Veri miktarını ve tüm verileri RAM'de tutma yeteneğini azaltacaktır. (teoride)

 
Integer :

Aradığınız şey sıkıştırılabilir ve sıkıştırılmış olarak aranabilir. Veri miktarını ve tüm verileri RAM'de tutma yeteneğini azaltacaktır. (teoride)

ihmo - sıkıştırılmış biçimde arama yapmak için - önce sıkıştırmayı açmanız gerekecek - teorik olarak, verileri sıkıştırılmış biçimde aramak için bir algoritma yazın - siktir et

ve sorun şu ki RAM - mt4'te (32 bit) fazla tutamazsınız

---

herhangi bir veritabanına büyük bir hacim koymak ve sorguları kullanarak hazır hesaplanmış verileri almak mantıklıdır.

Hazır çözümlerin nasıl uygulanacağı, kendi veri işleme mekanizmanızı yazmaktan daha iyi bir şey akla gelmez.

SQL, büyük hacimleri depolamak için çok uygundur, ancak SQL için 20 gig çok fazla değildir...

--

Hız için okunabilir bir parça için maksimum bellek miktarını ayırarak kendi mekanizmanızı yazma ve bu dosyayı parçalar halinde okuma seçeneği

ve bir döngü hesaplama yapmak için 20 konserden birkaç parça okumanız gerekecek

soru şu - daha hızlı olacak mı - veritabanını veritabanına sürme ve SQL sorguları aracılığıyla işleme seçeneği - bence değil

Verileri SQL'e sürerseniz neredeyse daha hızlı olacağını düşünüyorum.

 
YuraZ :

ihmo - sıkıştırılmış bir arama yapmak için - önce sıkıştırmayı açmanız gerekecek

Gerekli değil. Aradığınızı sıkıştırabilirsiniz. Bu kadar! :)
 

Elbette en sağlıklı karar algoritmayı değiştirmek olacaktır. Ancak bilinmediği için burada somut bir şey sunulamaz. Genel düşünceler elbette hiç olmayabilir.

Örneğin, bir dosyanın birden çok kez okunması gerekiyorsa, bu okuma dahili bir "döngü" içinde gerçekleşebilir. Okumayı en dıştaki "döngüye" "aktarmayı" deneyebilirsiniz - alıntılar kullanılır çünkü genel olarak böyle bir "aktarma" sıfırdan tamamen yeni bir algoritma oluşturmak anlamına gelebilir :).

Başka bir ipucu, shift ile seri okumadan söz edilir - sadece "shift" okumayı gerektiren bazı yinelemeli algoritmalar bu sorunu çözebilir. Ancak bu, sıfırdan tamamen farklı bir algoritma oluşturmak anlamına gelebilir.

Ya da belki de bununla ilgili değil :)

 
Integer :
Gerekli değil. Aradığınızı sıkıştırabilirsiniz. Bu kadar! :)

---

Çok miktarda bilgi var (bir metin dosyasında yaklaşık 20 GB).

Bilgi aynı türden dizilerden oluşur, bunların yaklaşık bir milyonu vardır.

Tüm dizileri tekrar tekrar sıralamak ve bazı hesaplamalar yapmak gerekir.

---

20 gigabayttan veriyi algoritmaya göndermeniz gerekir

arama yapmaz - dosya biçiminde verileri vardır - algoritmada kullanılır - hesaplama algoritmasına beslenir

 
Candid :

Elbette en sağlıklı karar algoritmayı değiştirmek olacaktır. Ancak bilinmediği için burada somut bir şey sunulamaz. Genel düşünceler elbette hiç olmayabilir.

Örneğin, bir dosyanın birden çok kez okunması gerekiyorsa, bu okuma dahili bir "döngü" içinde gerçekleşebilir. Okumayı en dıştaki "döngüye" "aktarmayı" deneyebilirsiniz - alıntılar kullanılır çünkü genel olarak böyle bir "aktarma" sıfırdan tamamen yeni bir algoritma oluşturmak anlamına gelebilir :).

Başka bir ipucu, shift ile seri okumadan söz edilir - sadece "shift" okumayı gerektiren bazı yinelemeli algoritmalar bu sorunu çözebilir. Ancak bu, sıfırdan tamamen farklı bir algoritma oluşturmak anlamına gelebilir.

Ya da belki de bununla ilgili değil :)

burada büyük miktarda veri içeren algoritmayı SQL sunucusuna taşımak mantıklıdır.
 
YuraZ :

---

Çok miktarda bilgi var (bir metin dosyasında yaklaşık 20 GB).

Bilgi aynı türden dizilerden oluşur, bunlardan yaklaşık bir milyon vardır.

Tüm dizileri tekrar tekrar sıralamak ve bazı hesaplamalar yapmak gerekir.

---

20 gigabayttan veriyi algoritmaya göndermeniz gerekir

arama yapmaz - bir veritabanına sahiptir - algoritmada kullanılır

Sadece bir komplo. Tabii ki, herhangi bir şey olabilir, ama onun aradığını varsayıyorum. Hatta bunu varsayıyorum.
 
Integer :
Gerekli değil. Aradığınızı sıkıştırabilirsiniz. Bu kadar! :)

Abi beni şaşırtıyorsun

Hangi algoritmayı sıkıştıracağız? Huffman, Lempel-Ziv?

Bir metin düzenleyicide olduğu gibi 4-8 kez sıkıştırma sağlayacaktır. Sıkıştırma algoritmalarının her dosya için kendi kayıt ağaçlarını oluşturduğunu düşünün.

Başka bir deyişle, kaynak dosya için bir ağaç olacak ve bulunması gereken verilerin bir kısmı için tamamen farklı kendi olacak.

Nasıl bir arama yapmayı önereceğinizi merak mı ediyorsunuz? teorik olarak bile

Veri sıkıştırma, kodlamadan başka bir şey değildir. Şifreleme ile bir benzetme yaparsak, farklı anahtarlarla (kayıt ağaçları) şifrelenmiş iki farklı mesaj (sıkıştırılmış veri) alırız.

Arama işlevinden bahsetmeden onları bir şekilde karşılaştırmak bile imkansız)))

 
elugovoy :

Abi beni şaşırtıyorsun

Hangi algoritmayı sıkıştıracağız? Huffman, Lempel-Ziv?

Eh, bir metin düzenleyicide olduğu gibi 4-8 kez sıkıştırma sağlayacaktır. Sıkıştırma algoritmalarının her dosya için kendi kayıt ağaçlarını oluşturduğunu düşünün.

Başka bir deyişle, kaynak dosya için bir ağaç olacak ve bulunması gereken verilerin bir kısmı için tamamen farklı kendi olacak.

Nasıl bir arama yapmayı önereceğinizi merak mı ediyorsunuz? teorik olarak bile

Veri sıkıştırma, kodlamadan başka bir şey değildir. Şifreleme ile bir benzetme yaparsak, farklı anahtarlarla (kayıt ağaçları) şifrelenmiş iki farklı mesaj (sıkıştırılmış veri) alırız.

Arama işlevinden bahsetmeden onları bir şekilde karşılaştırmak bile imkansız)))

Ah, burada beni şaşırtan ne çok şey var.

Bana öyle geliyor ki, çocuk anlamalı. Bazı metinler bir algoritma tarafından sıkıştırılırsa, bugün ve yarın da sıkıştırılmış biçimde tamamen aynı olacaktır.

Aynı sıkıştırma algoritmasını kullanarak ve çıktıda iki farklı metni sıkıştırarak, tamamen aynı iki veri dizisi elde edebileceğinizi mi söylüyorsunuz?

 
Integer :
Sadece bir komplo. Tabii ki, herhangi bir şey olabilir, ama onun aradığını varsayıyorum. Hatta bunu varsayıyorum.

Ne aradığımı bilmiyorum...

>>> Tüm dizileri tekrarlamak ve bazı hesaplamalar yapmak gereklidir.

Pekala - öyle olsun - arıyorum - ama 20 konseri sıralamak için arıyorum ...

Prensip olarak, arama, bazı numaralandırma ve karşılaştırmaların olduğu gerçeğine dayanmaktadır.

yazarın yazdıklarından yola çıkıyorum

belki veriler indirgenemez - sıkıştırılamaz - indekslenemez


verileri SQL'e koymak mantıklıdır

yani iş mantığını sunucuya + verilere aktarın

EA, numaralandırma ve hesaplamalar için sunucuya yalnızca kısa veriler gönderir

ve hazır bir cevap al