# NOR

• 1/0
• 1/0

• NOR

## Neuron type

Best algorithm has been found - locked

## Patterns

Pattern Input Output
1.
 1/0: 0 1/0: 0
 NOR: 1
2.
 1/0: 0 1/0: 1
 NOR: 0
3.
 1/0: 1 1/0: 0
 NOR: 0
4.
 1/0: 1 1/0: 1
 NOR: 0

## Applicable neurons

• Plus (x + y)
• Minus (x - y)
• Multiple (x × y)
• Division (x ÷ y)
• 0
• 1
• NOT

## Algorithm

### Test

```/**
* 1:
*
* @return {Array}
*/
function neuron501()
{
return [1];
}

/**
* Minus (x - y):
*
* @param x1 Number X
* @param x2 Number Y
* @return {Array}
*/
function neuron2(x1, x2)
{
math.config({number: 'BigNumber', precision: 64}); return [math.eval(Number(x1) + '-'+Number(x2)).toString()];
}

/**
* NOT:
*
* @param x1 1/0
* @return {Array}
*/
function neuron567(x1)
{
var outputs = [];
outputs[0] = x1;

arr = neuron501();
outputs[1] = arr[0];

arr = neuron2(outputs[1], outputs[0]);
outputs[2] = arr[0];

return[outputs[2]];
}

/**
* Multiple (x × y):
*
* @param x1 Number X
* @param x2 Number Y
* @return {Array}
*/
function neuron3(x1, x2)
{
math.config({number: 'BigNumber', precision: 64}); return [math.eval(Number(x1) + '*'+Number(x2)).toString()];
}

/**
* NOR:
*
* @param x1 1/0
* @param x2 1/0
* @return {Array}
*/
function neuron573(x1, x2)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;

arr = neuron567(outputs[1]);
outputs[2] = arr[0];

arr = neuron567(outputs[0]);
outputs[3] = arr[0];

arr = neuron3(outputs[3], outputs[2]);
outputs[4] = arr[0];

return[outputs[4]];
}

```