#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-8;
int n;
char c;
const int maxn = 2e5 + 5;
int str[26][maxn];
long long bits[26 * 2 + 1][maxn];
double sum(int k, int index, int on) {
  double ans = 0;
  while (k > 0) {
    ans += bits[26 * on + index][k];
    k -= k & -k;
  }
  return ans;
}
void add(int k, int x, int index, int on) {
  while (k <= n) {
    bits[26 * on + index][k] += x;
    k += k & -k;
  }
}
int main(void) {
  memset((bits), 0, sizeof(bits));
  scanf("%d%*c", &n);
  for (int i = (0); i < (n); i++) {
    c = getchar();
    add(i + 1, i + 1, c - 'A', 0);
    add(n - i, n - i, c - 'A', 1);
  }
  getchar();
  for (int i = (0); i < (n); i++) {
    c = getchar();
    str[c - 'A'][++str[c - 'A'][0]] = i;
  }
  double ans = 0;
  long long l, r;
  for (int i = (0); i < (26); i++) {
    for (int j = (1); j < (str[i][0] + 1); j++) {
      l = str[i][j] + 1;
      r = n - l + 1;
      ans += sum(l, i, 0) * r + sum(r - 1, i, 1) * l;
    }
  }
  double total = (double)n * (n + 1) * (2 * n + 1) / 6;
  printf("%.9f\n", ans / total);
  return 0;
}
