Complete rewrite of my answer...a counter-example.

Consider an hypersphere with unit radius embedded in an $n$- dimensional space, and consider a *regular simplex* inside the sphere with vertices on the sphere. The simplex will have the following properties:

- the simplex will have $n+1$ vertices (and vectors to those vertices from the origin)
- the angles (and dot products) between each of the vectors will be the same
- the absolute value of the dot product between the vectors will simply be $1/n$

So in order to have even just *n+1 vectors satisfying your relationship*, you have to have $\epsilon > 1/n$.

## ** EDIT **

As an experiment, here is code to treat positioning the points around the hypersphere as an energy minimizing problem.

Define a function that models a repelling force on a point from another point, with no force of the point from itself. Note the parameters α, β, which will impact the algorithm's performance. The potential energy is minimized when the points are evenly distributed.

```
α = 100;
β = 4;
push[p1_, p2_] := If[p1 != p2, p1 + α (p1 - p2)/((p1 - p2).(p1 - p2))^β, p1];
```

A function which moves the points, hopefully spreading them around the sphere. It first pushes them to a new position that is not on the sphere, then normalizes them to the sphere.

```
spread[pts_] := Map[Normalize, (Outer[push[#1, #2] &, pts, pts, 1]//Transpose//Total)];
```

To check the results, define a function to find the maximum dot product between all the vectors.

```
maxDot[pts_] := Map[Dot[#[[1]], #[[2]]] &, Permutations[pts, {2}]] // Max;
```

Now create an initial spread of points and run it...it rapidly converges to the ideal of -0.02 for a simplex.

Set the dimension `n`

and the number of points `m`

```
n = 50;
m = 51;
pts = RandomPoint[Sphere[n], m];
res = NestList[spread[#] &, pts, 200];
dots = Map[maxDot, res];
ListPlot[dots, Frame -> True, GridLines -> Automatic]
```

Try it with the orthoplex. We expect a max dot product of zero.

```
n = 20;
m = 40; (* = 2 n *)
pts = RandomPoint[Sphere[n], m];
res = NestList[spread[#] &, pts, 200];
dots = Map[maxDot, res];
ListPlot[dots, Frame -> True, GridLines -> Automatic]
```

One more, for the hypercube. We expect the max dot to be <=(1-2/n). Had to reduce α and β to get it to work.

```
α = 1;
β = 1;
n = 6;
m = 2^n;
pts = RandomPoint[Sphere[n], m];
res = NestList[spread[#] &, pts, 300];
ListPlot[dots, Frame -> True, GridLines -> Automatic]
```

The code could definitely be optimized.

One more graphic, watching the points disperse. Started them all in the positive quadrant, greatly reduced α to slow convergence.

```
α = .1;
β = 1;
n = 3;
m = 100;
pts = Abs@RandomPoint[Sphere[n], m];
res = NestList[spread[#] &, pts, 50];
anim = ListAnimate[ListPointPlot3D[#, AspectRatio -> Full,
PlotRange -> {{-1, 1}, {-1, 1},{-1,1}}] & /@ res]
```

3Is this a question about Mathematica the software by Wolfram Research or is this a pure math question? In the latter case you should ask this on [math.SE] – b3m2a1 – 2020-01-13T19:21:56.790

1@b3m2a1 I have an approximate mathematical solution to this problem. However I want to verify my solution using Mathematica, and I am not very proficient using the same so I asked the question. That is why I repeatedly mentioned the words, "demonstrate via some explicit construction". – Bruce Lee – 2020-01-13T19:30:16.757

1@BruceLee it would be beneficial to edit that to “demonstrate(/or verify) using Mathematica” – CA Trevillian – 2020-01-14T13:44:39.163

1@CATrevillian Done, thanks. – Bruce Lee – 2020-01-15T18:34:14.800