#include <bits/stdc++.h>
using namespace std;
const int maxn = 211111;
const int mod = 1000000007;
char a[maxn], b[maxn];
int p[maxn];
int q[maxn], len;
double den;
double go(int p[], int q[], int n, int m) {
  int i, j;
  static long long sum[maxn], rsum[maxn];
  sum[0] = 0;
  long long tmp = 0;
  for (i = 1; i <= m; ++i) sum[i] = sum[i - 1] + q[i];
  rsum[m + 1] = 0;
  for (i = m; i >= 1; --i) rsum[i] = rsum[i + 1] + len - q[i] + 1;
  double ans = 0;
  for (i = 1, tmp = 0, j = 1; i <= n; ++i) {
    for (; j <= m && q[j] <= p[i]; ++j) {
      tmp += q[j];
    }
    ans += 1.0 * tmp * (len - p[i] + 1);
    ans += 1.0 * p[i] * rsum[j];
  }
  return ans;
}
int main() {
  ios::sync_with_stdio(false);
  int i, k, j, m, n;
  scanf("%d", &len);
  scanf("%s%s", a + 1, b + 1);
  den = 0;
  for (i = len; i >= 1; --i) den += 1.0 * i * i;
  double ans = 0;
  for (i = 0; i < 26; ++i) {
    m = n = 0;
    for (j = 1; j <= len; ++j) {
      k = a[j] - 'A';
      if (k == i) p[++n] = j;
      k = b[j] - 'A';
      if (k == i) q[++m] = j;
    }
    ans += go(p, q, n, m);
  }
  ans /= den;
  printf("%.10f\n", ans);
  return 0;
}
