2つの要素に対して差分を求めるとは、何が変わっていないのか、何が追加されたのか、何が削除されたのか、求める行為である。
差分を計算するために、下記3つを計算する。
- 編集距離 (levenshtein distance)
- 2つの要素の差分を数値化したもの
- LCS (Longest Common Subsequence)
- 2つの要素 X と Y の最長共通部分列
discard """ | |
Run as following. | |
$ nim c -r --verbosity:0 helloworld.nim | |
""" | |
echo("hello world.") |
discard """ | |
Run as following. | |
$ nim c -r --verbosity:0 fibonacci.nim | |
""" | |
proc fibonacci(n: int): int = | |
if n < 2: | |
return n | |
return fibonacci(n-1) + fibonacci(n-2) |
discard """ | |
Run as following. | |
$ nim c -r --verbosity:0 insert_sort.nim | |
""" | |
proc insert_sort(alist: var seq[int], position: int, value: int) = | |
var i: int | |
i = position - 1 | |
while i >= 0 and alist[i] > value: |
discard """ | |
Run as following. | |
$ nim c -r --verbosity:0 quick_sort.nim | |
""" | |
proc sort(alist: var seq[int]): seq[int] = | |
if alist.len == 0: | |
return alist |
discard """ | |
Run as following. | |
$ nim c -r binary_tree.nim | |
""" | |
type | |
Node*[T] = ref NodeObj[T] | |
NodeObj[T] = object | |
left: Node[T] | |
right: Node[T] |
import math | |
import strutils | |
proc select_random_pivot_index(anarray: openArray[int], left: int, right: int): int = | |
## ランダムに 軸値 の添字を決定する。 | |
if left == right: | |
return left | |
return random(left..right) |
# -*- coding: utf-8 -*- | |
import base64 | |
from cryptography.hazmat.backends import default_backend | |
from cryptography.hazmat.primitives import serialization | |
from cryptography.hazmat.primitives.asymmetric.rsa import RSAPublicNumbers | |
""" |