隨機生成數獨的算法

    介紹:數獨(すうどく,Sūdoku)是一種運用紙、筆進行演算的邏輯遊戲。玩家需要根據9×9盤面上的已知數字,推理出所有剩餘空格的數字,並滿足每一行、每一列、每一個粗線宮內的數字均含1-9,不重複。

wKioL1M9ODfhBc8oAACom9GNPzQ046.jpg

     這也是個偶然的事情,就在幾個小時前,看android教程,有個例子是說數獨的,我就鬼神神差的走神了,於是我就想到了這個並不複雜的算法。

     算法簡介:直接上圖wKiom1M9RAWBefTiAALms_ngOyQ590.jpg

   如上圖所示,我需要一個簡單的原型,也就是按照一定規則組成的數獨表,通過一個隨機生成的Map(也就圖中所示的參照表),類似與翻譯似的經過兩次轉換,變成一個看似沒有規則但都繼承了原型表規律的新的數獨表。另外,值得一提的是,這兩次參照生成並不需要使用同一個Map。

   缺陷:這個算法其實只能算是“僞算法”,因爲他並沒有真正的生成一個隨機的數獨表,只是一種表象上的假象。另外對新表進行二次參照並沒有實質上的意義,只是我自己尋求的一種心理平衡——讓我覺得自己更厲害一些。

   總結:其實,想來有些譁衆取寵的感覺。不過,總要給自己些鼓勵不是,不然怎麼進步啊,加油。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章