数字を手計算で複雑に変化させる方法をまとめる
(試しにnoteに投稿された画像から記事冒頭の画像を選ぶやつ使ってみました)
占いを独自で改良するときに、数字をあれこれいじって予測できないような変化をもたらす方法が欲しかったことがあります。
占いに使うので簡単に手計算で計算できるのが条件です。
私の場合は断易なんですけどね。
色々考えたので今回はそれを備忘録的にまとめます。(疑似乱数がほしいわけじゃないです)
二乗して真ん中を取る(平方採中法)
二乗するのであんまり大きな数は厳しいです。
手順を下に書きます。
ほしい桁数を決める。
元になる数の二乗を求める。
求めた数がほしい桁数を二倍した桁数に足りなければ左を0で埋める。多ければ左から減らす。
中央部分をほしい桁数の分だけ数字を取り出す。
取り出した数字を二乗して3に戻る。(好きな回数繰り返す)
この方法は単純で扱いやすいと思います。
二進数の足し算を繰り上がり無視する(排他的論理和)
二進数の足し算をするとき、各桁で同じ数であれば0、違う数であれば1になる計算です。
文字は数字にして(数秘術のやり方や、ASCII)、二進数にしてから筆算します。繰り上がりは無視してください。
これの利点は2つの数から結構複雑な変化をしているように見える一つの数が簡単に作れることです。
二進数にする手間はありますが、1023までは両手の指で求めることができます。
指を伸ばす、折るを二進数に割り当てればいいです。
31までなら両手の指だけを使って排他的論理和も済ませられます。
占い的な意味があるかはあなた次第ですが、結構手軽な割にそこそこ複雑な変化なので実用性はあるでしょう。
数字をずらすことを組み合わせる(Xorshift)
一つの数を複雑な変化させるときは各桁の数字を右に左にずらすことを組み合わせます。
かなり煩雑になりますが、二進数にしたときの桁が自分に扱える範囲なら十分使えますね。両手の指だと31までです。
指でやる手順を下に書きます。
両手それぞれで元になる数を示す。(桁は0で埋めて揃える)
片手の各桁の数字を左に好きな回数ずらす。左端の数は右端に。
両手の間で排他的論理和。
両手それぞれを出た数と同じにする
片手の各桁の数字を右に好きな回数ずらす。右端の数は左端に。
両手の間で排他的論理和。
両手それぞれを出た数と同じ数にする。
片手の各桁の数を左に好きな回数ずらす。左端の数は右端に。
両手の間で排他的論理和。
出た数が変化したあとの数。
かなり煩雑ですが、やってることは4つです。
両手それぞれを同じ数にする、左にずらす、右にずらす、排他的論理和、ですね。
もちろん同じことを紙でやるともっと大きな数を扱えます。
大きい桁の丸め方
数秘術のように還元するという方法でも良いのですが、商の余りを求める計算を推します。
商の余りの変化からどういう計算をしているのかはわからないという点で似たようなものです。
また、商の余りなら最大値を設定できるので、柔軟に使いやすいと思います。(易の爻を求めたいときとか)
割る数を最大値足す1にして計算すれば、0から最大値までの数字が出てきます。
1からほしいときは割る数を最大値として、計算してから1足せばいいだけです。
結び
色々書きましたが、既存の方法のうち手計算でできるものをまとめてみたような感じになりました。
ここで書いたもののうちXorshiftは結構複雑な変化をするはずです。(ずらす回数が13,17,15のときはとても)
といっても、ある程度複雑な変化をしてほしいと言うだけで、乱数がほしいわけではないのですが。
数学ができる方なら多分もっといい方法を思いつくのでしょうが、ノートの余白に書ける程度の計算にしたかったのでこれらになりました。
占いへの活用方法ですが、排他的論理和やXorshiftは、易なんかだと元々二進数ですし、桁が変わらないので活用しやすいと思います。
計算としては数秘術が思い浮かびますけど、二進数にしたときに数字の並びが微妙かもしれません。
新しい占いを考えるのは楽しいですね。
私の自己紹介は下のリンクから