En iyi sıkıştırılabilirliği elde etmek için eksiksiz bir masaya ihtiyacınız yoktur. Makul bir görünüm tablosu kullanan modern bilgisayarların , halihazırda bazı basamaklar bulunan Sudokus olan sınırlı Sudokus sayısını sayabildiğini düşünüyorum . Bunu kullanarak, işte nasıl kodladığınız (kod çözme benzer).
d1N1d1d2N2d 2 , N = Σ i K ıd1d2N=∑iNi
Bu kodlama yöntemi , literatürde binom kodlaması olarak bilinir . Verimli (gerçek dünyadaki anlamda) herhangi bir Sudoku indeksini hesaplamanıza olanak sağlar ve bunun tersi de geçerlidir. Daha sonra , yukarıda belirtildiği gibi yalnızca bit gerekecektir (bu, birçoğunu bu ortalama bit sayısıyla kodlayabileceğiniz anlamına gelir).72.4
Düzenleme: Sudoku matematiğinin Wikipedia sayfası , fotoğrafı netleştirmemize yardımcı olur. Ayrıca Ed Russell tarafından derlenen bir tablodur .
Yalnızca ilk üç satırı göz önünde bulundurursanız, dikkate alınması gereken sadece 44 farklı yapılandırma olduğunu görürsünüz. Tabloda, herhangi birine eşdeğer toplam yapılandırma sayısını bulabilirsiniz (en üst satırın 123456789 olduğu varsayılarak) ve her birinin toplam tamamlanma sayısını bulabilirsiniz. Bir Sudoku verildiğinde, sıra sayısını nasıl hesaplayacağımız:
- Konfigürasyonu normal hale getirin, böylece üst satır 123456789 olur.
- Hangi 44 farklı konfigürasyondan birine ait olduğunu bulun. Wikipedia makalesi bunun için bir algoritma veriyor. Tabloda, her bir konfigürasyon için eşdeğerlik sınıfı sayısı ve tamamlama sayısı listelenmektedir.
- Eşdeğerlik sınıfı içindeki ilk üç sıranın konfigürasyonunun sıra sayısını belirleyin. Bu iki yolla yapılabilir: ya tüm denklik sınıflarının bir listesini kullanarak (tüm denklik sınıflarında toplamda 36288 var) ya da hepsini hızlı bir şekilde numaralandırmanın bir yolunu bularak.
- Kalan satırları 4-6 ve 7-9 sıralarını ilk sütunlarına göre sıralayarak ve ardından bu iki satır bloğunu rasgele bir şekilde sıralayarak normalleştirin. Bu, tamamlama sayısını 72 katına kadar azaltır.
- Aynı ilk sütuna sahip tüm tamamlamaları numaralandırın. Her denklik sınıfı için yaklaşık , bu yüzden çok uzun sürmemelidir. Bazı travmalar da burada mümkün.220
- denklik sınıfı olalım , , eşdeğerlik sınıfı içindeki ilk üç sıranın konfigürasyonunun sıra numarası, , tamamlamanın sıra sayısıdır. İki dizi (Ed Russell'in tablosundan hesaplanabilir) öyle ki Soduko'nun 9'a kadar olan sıra sayısı simetri dikkate . Bundan asıl sıra sayısını hesaplayabilirsiniz.j k C ı , D i C i + j D i + k 9 ! ⋅ 72ijkCi,DiCi+jDi+k9!⋅72
Bu prosedür geri dönüşümlüdür ve bir sıra numarasından bir Sudoku üretecektir. Sudoku numaralandırmasının birkaç dakikaya düşürüldüğünü (2006'da; Wikipedia makalesinin konuşma sayfasına bakın) veya daha az olduğunu, bu nedenle modern bir bilgisayarda bu yaklaşımın çok pratik olacağını ve birkaç saniye veya daha az süreceğini umuyorum.