Comment detail

四字熟語パズルの作成 (Nested Flatten)

This comment is reply for 3661 sumim: Squeak Smalltalk で。 ...(四字熟語パズルの作成). Go to thread root.

数が食い違う原因はまだ分からないのですが、とりあえずひとつ明らかなバグが見つかったので修正。結果、少し増えて 12109 件でした。多数派の数にちょっと近づいたか?(^_^;)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
@@ -8,7 +8,7 @@
 timeToRun := [
     firstCharDict := yojis
         groupBy: [:each | each first]
-        having: [:group | group size > 1].
+        having: [:group | true].

     pairs := OrderedCollection new.
     yojis do: [:first |
@@ -37,4 +37,4 @@
     out nextPutAll: quartet last; cr; cr].
 out edit.

-^{results size. timeToRun}   "=> #(11712 13835) "
+^{results size. timeToRun}   "=> #(12109 13792) "
Unicode の扱いが分かる言語が Python だけだったので にしおさんの結果と差分をとってみたところ、にしおさんのにあって私のになかったのは次の7個でした。

#('一切即一' '一期四相' '一期四相' '相門有相')
#('一場春夢' '夢中説夢' '一切即一' '一場春夢')
#('一念通天' '天下第一' '一切即一' '一切即一')
#('一了百当' '当代第一' '一切即一' '一切即一')
#('一期一会' '会三帰一' '一切即一' '一切即一')
#('一文不知' '知行合一' '一切即一' '一切即一')
#('一読三嘆' '嘆息嗟嘆' '一切即一' '一読三嘆')

とりあえずこれらについては、私のほうではセットを使って重複を外す手続きをしているのでその関係かと思われます。

これと別に、同じ組み合わせでも順序が違うときに省くかどうかという判断も影響しそうです。
ocean さんの Python 版 12118 個と比較したところ、先の 7 個に加えて次の2点が私のでははじかれていました。やはり、4組のうちの重複要素の扱いに起因する違いのようです。

#('一唱三嘆' '嘆息嗟嘆' '一切即一' '一唱三嘆')
#('一切即一' '一炊之夢' '一炊之夢' '夢中説夢')


あと、以下の並びの異なる2セットをそれぞれ区別するかで 12109 と 12107 の差が出ることも分かりました。

#('一切即一' '一読三嘆' '一唱三嘆' '嘆息嗟嘆')
#('一切即一' '一唱三嘆' '一読三嘆' '嘆息嗟嘆')

#('一炊之夢' '夢中説夢' '一切即一' '一場春夢')
#('一場春夢' '夢中説夢' '一切即一' '一炊之夢')

Index

Feed

Other

Link

Pathtraq

loading...