Jaccard index: Difference between revisions

Content added Content deleted
(julia example)
(→‎{{header|Wren}}: Updated yet again!)
Line 133: Line 133:
var e = Set.new([2, 3, 5, 7])
var e = Set.new([2, 3, 5, 7])
var f = Set.new([8])
var f = Set.new([8])
var sets = [a, b, c, d, e, f]
var isets = Indexed.new([a, b, c, d, e, f])
for (se in isets) {

var i = String.fromByte(se.index + 65)
for (se in Indexed.new(sets)) {
var i = se.index
var v = se.value
v = v.toList.sort() // force original sorted order
var s = se.value
Fmt.print("$s = $n", i, v)
s = s.toList.sort() // force original sorted order
Fmt.print("$s = $n", String.fromByte(65 + i), s)
}
}

var pairs = [
[a, a], [a, b], [a, c], [a, d], [a, e], [a, f], [b, b], [b, c], [b, d], [b, e], [b, f],
[c, c], [c, d], [c, e], [c, f], [d, d], [d, e], [d, f], [e, e], [e, f], [f, f]
]

var names = [
"AA", "AB", "AC", "AD", "AE", "AF", "BB", "BC", "BD", "BE", "BF",
"CC", "CD", "CE", "CF", "DD", "DE", "DF", "EE", "EF", "FF"
]

System.print()
System.print()
for (se in Indexed.new(pairs)) {
for (se1 in isets) {
var n = names[se.index]
var i1 = String.fromByte(se1.index + 65)
var ss = se.value
var v1 = se1.value
for (se2 in isets) {
Fmt.print("J($s, $s) = $h", n[0], n[1], jacardIndex.call(ss[0], ss[1]))
var i2 = String.fromByte(se2.index + 65)
var v2 = se2.value
Fmt.print("J($s, $s) = $h", i1, i2, jacardIndex.call(v1, v2))
}
}</lang>
}</lang>


Line 174: Line 166:
J(A, E) = 0
J(A, E) = 0
J(A, F) = 0
J(A, F) = 0
J(B, A) = 0
J(B, B) = 1
J(B, B) = 1
J(B, C) = 0.428571
J(B, C) = 0.428571
Line 179: Line 172:
J(B, E) = 0.5
J(B, E) = 0.5
J(B, F) = 0
J(B, F) = 0
J(C, A) = 0
J(C, B) = 0.428571
J(C, C) = 1
J(C, C) = 1
J(C, D) = 0
J(C, D) = 0
J(C, E) = 0.5
J(C, E) = 0.5
J(C, F) = 0
J(C, F) = 0
J(D, A) = 0
J(D, B) = 0.25
J(D, C) = 0
J(D, D) = 1
J(D, D) = 1
J(D, E) = 0.125
J(D, E) = 0.125
J(D, F) = 0.2
J(D, F) = 0.2
J(E, A) = 0
J(E, B) = 0.5
J(E, C) = 0.5
J(E, D) = 0.125
J(E, E) = 1
J(E, E) = 1
J(E, F) = 0
J(E, F) = 0
J(F, A) = 0
J(F, B) = 0
J(F, C) = 0
J(F, D) = 0.2
J(F, E) = 0
J(F, F) = 1
J(F, F) = 1
</pre>
</pre>