Nummerologie script nodig
De gebruiker vult zijn geboortedatum in en daarna moeten die cijfers opgeteld worden. Als dat getal een 11, 22 of 33 is moet dat getal worden getoond. Anders moeten die cijfers weer bij elkaar opgeteld worden, en zo door.
Alvast bedankt, Michel :-)
resultaat van 13-5-86 = 1144 (104*11)
Je vraag is overigens nogal onduidelijk, moeten de resultaten alleen maar 11, 22 en 33 zijn? Wat vult de gebruiker precies in (15-5, 13-5-1986 of 13-5-86). Misschien kun je wat mee wat ik gemaakt heb, zo niet laat dan even weten. Wil ik er nog een keer naar kijken.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
echo inTafelVanElf("13-5-86");
function inTafelVanElf($date) {
$dates = explode("-", $date);
$val = $dates[0]+$dates[1]+$dates[2];
while($val%11 != 0) {
$val += $dates[0]+$dates[1]+$dates[2];
}
return $val;
}
function inTafelVanElf($date) {
$dates = explode("-", $date);
$val = $dates[0]+$dates[1]+$dates[2];
while($val%11 != 0) {
$val += $dates[0]+$dates[1]+$dates[2];
}
return $val;
}
Gewijzigd op 17/10/2013 15:00:14 door Jeroen Kwakkel
De invoer is xx-xx-xxxx. Allereerst moeten alle cijfers bij elkaar geteld worden ( 1 + 3 + 5 + 1 + 9 + 8 + 6 = 33 ) In dit geval is het getal 33 dus moet hij dit ook als output geven, is het getal iets anders dan 11, 22 of 33 moet deze nogmaals bij elkaar geteld worden en dan moet dit als output gegeven worden.
Ik hoop dat je een beetje snapt wat ik in gedachten heb?
Voor zover ik weet (ik ben geen numeroloog) gebeurt het zelfde ook met de naam.
------------------
Ik heb dit ooit gemaakt voor iemand op deze website
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
$naamdatum = 'Mark Rutte 1967-02-14';
$steps;
$a = letters2number($naamdatum, $steps);
$b = reduceNumber($a, $steps);
echo $naamdatum . $steps .'<br>';
function letters2number($letters, &$step=null) {
$step .= '<br>';
$result = '';
for ($i=0; $i<strlen($letters); $i++) {
$letter = substr($letters, $i, 1);
$char = ord(strtoupper($letter));
if($char >= 65 && $char <= 90) { // 65 = A; ... 90 = z; anything else will be ignored. No letters with accents, no points or commas, ...
$result .= ($char - 64); // so 1 = A, 2 = B; ...
$step .= ($char - 64) ." ";
}
if($char >= 48 && $char <= 57) { // 0 -> 9
$result .= $letter; // the character is a digit; so we just add it
$step .= $letter ." ";
}
}
return $result;
}
function reduceNumber($number, &$step=null) {
$step .= '<br>';
//$number = (int) $number;
$newNumber = 0;
for ($i=0; $i<strlen($number); $i++) {
$newNumber += (int) substr($number, $i, 1);
}
if ($newNumber < 10) {
$step .= $newNumber ;
return $newNumber;
}
else {
$step .= $newNumber ;
return reduceNumber($newNumber, $step);
}
}
?>
$naamdatum = 'Mark Rutte 1967-02-14';
$steps;
$a = letters2number($naamdatum, $steps);
$b = reduceNumber($a, $steps);
echo $naamdatum . $steps .'<br>';
function letters2number($letters, &$step=null) {
$step .= '<br>';
$result = '';
for ($i=0; $i<strlen($letters); $i++) {
$letter = substr($letters, $i, 1);
$char = ord(strtoupper($letter));
if($char >= 65 && $char <= 90) { // 65 = A; ... 90 = z; anything else will be ignored. No letters with accents, no points or commas, ...
$result .= ($char - 64); // so 1 = A, 2 = B; ...
$step .= ($char - 64) ." ";
}
if($char >= 48 && $char <= 57) { // 0 -> 9
$result .= $letter; // the character is a digit; so we just add it
$step .= $letter ." ";
}
}
return $result;
}
function reduceNumber($number, &$step=null) {
$step .= '<br>';
//$number = (int) $number;
$newNumber = 0;
for ($i=0; $i<strlen($number); $i++) {
$newNumber += (int) substr($number, $i, 1);
}
if ($newNumber < 10) {
$step .= $newNumber ;
return $newNumber;
}
else {
$step .= $newNumber ;
return reduceNumber($newNumber, $step);
}
}
?>
Die 11, 22, 33 zou ik moeten toevoegen ...
Gewijzigd op 17/10/2013 15:25:39 door Kris Peeters
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
echo start("13-06-1986");
function start($date) {
$dates = explode("-", $date);
$val = recursief($dates, 0, 0);
if($val < 34 && $val%11 == 0) {
return $val;
} else {
//return $val+$val; // Gewoon twee keer dezelfde waarde?
return recursief(array($val), 0, 0);
}
}
function recursief($waarde, $val, $times) {
if($times == count($waarde))
return $val;
$waardes = str_split($waarde[$times]);
foreach($waardes as $value) {
$val += $value;
}
return recursief($waarde, $val, $times+1);
}
function start($date) {
$dates = explode("-", $date);
$val = recursief($dates, 0, 0);
if($val < 34 && $val%11 == 0) {
return $val;
} else {
//return $val+$val; // Gewoon twee keer dezelfde waarde?
return recursief(array($val), 0, 0);
}
}
function recursief($waarde, $val, $times) {
if($times == count($waarde))
return $val;
$waardes = str_split($waarde[$times]);
foreach($waardes as $value) {
$val += $value;
}
return recursief($waarde, $val, $times+1);
}
Die van Jeroen werkt inmiddels. Bedankt!