#include <bits/stdc++.h>
using namespace std;
unsigned long long i, j, k, m, n, l;
char s[200000 + 10], t[200000 + 10];
vector<int> a[26 + 10], b[26 + 10];
double x, y;
double f[200000 + 10], g[200000 + 10];
int main() {
  scanf("%d", &n);
  scanf("%s", s);
  scanf("%s", t);
  for (int i = 0; i < (n); ++i) a[s[i] - 'A'].push_back(i + 1);
  for (int i = 0; i < (n); ++i) b[t[i] - 'A'].push_back(i + 1);
  for (int i = (1); i <= (n); ++i) y += (double)i * i;
  for (int i = 0; i < (26); ++i) {
    if (((int)(a[i]).size()) == 0) continue;
    m = ((int)(a[i]).size());
    g[m - 1] = n - a[i][m - 1] + 1;
    for (int j = (m - 2); j >= (0); --j) g[j] = g[j + 1] + n - a[i][j] + 1;
    j = k = 0;
    double tot = 0;
    while (j < ((int)(a[i]).size()) && k < ((int)(b[i]).size())) {
      if (a[i][j] <= b[i][k])
        tot += a[i][j++];
      else {
        x += b[i][k] * g[j];
        x += tot * (n - b[i][k++] + 1);
      }
    }
    while (k < ((int)(b[i]).size())) x += tot * (n - b[i][k++] + 1);
  }
  printf("%.12lf\n", x / y);
  return 0;
}
