21
Ohjelmointi, palvelimet ja muu edistyneempi käyttö / Vs: Ohjeita shell-skriptaukseen (bash)
« : 10.09.24 - klo:09.49 »
Sain lopultakin kasattua sellaisen desimaali-matriisin jäsenten yhteenlaskun joka ottaa huomioon myös lukujen konaisosan. Eikä tämä häviä muille kielille ihan mahdottomasti mutta ei tämmöisillä laskuilla merkitystä enää ole. Paitsi sen osoittamisessa että BASH tuhottiin jo 30 vuotta sitten - tietäen että tämmöiset toimivat jo siloin ja olivat ihan kelvollisia senajan vaatimusten mukaan - ja mitähän kaikkea vielä paljastuukaan.
- kopioi koko koodi-alue päätteeseen yhdellä kertaa ja paina enter
yhteenlaskettavien joukko:
10427790765681.9314758936081 12280707219456.2504508814096 8195990282496.2488619831296 1249198336.1121513121 5861899530496.7871531640625
2520473760000.1421970391296 13448539200625.5185097880561 2025637716001.3743764484161 2457068790016.2229897104656 959512576.796594176
3787013300625.6439662447201 3491998578721.9660714532561 157351936.276922881 1642047467776.2449228130001 1536953616.1171350625
260144641.875213056 83521.187388721 705911761.126247696 395254161.322417936 157351936.1330863361
623201296.1275989841 9336104694016.11637711365281 252047376.875213056 1222830961.479785216 11840653050625.6044831973376
5580787292161.9926437890625 10000.38416 3185853730816.7648371893761 12072122454016.4275978808336 163047361.1073283121
6327217036816.7146131900625 2356596484641.15122640998656 607573201.1026625681 2052941630481.9187452028561 2296318960321.1951955471376
221533456.221533456 2496554842401.8792909200656 2480703750625.5653761639696 1385858700625.5337948160000 130321.28561
2425818710016.11512204705296 7394054078401.13476652155136 373301041.418161601 1427186233201.2944999210000 1057187014416.3841600000000
112550881.303595776 15494111297536.4915625528641 1026625681.1445900625 1146228736.38416 13932481925376.2593262550321
14252505012001.3512479453921 11764241449216.2585098014976 2303789694976.2536514910736 6455847578896.4359848400625 1097199376.623201296
592240896.1171350625 14223186420496.2593262550321 2760652033441.15431729448976 362673936.1171350625 168896016.442050625
1861107122176.11738853292401 429981696.479785216 8550360810000.1396105301761 2266617569841.10312216477696 981506241.777796321
10106606869921.3700887165361 705911761.303595776 14641.28561 835210000.104060401 1501725251601.8978179242321
9019744817521.2918114646001 7076456545921.1551160647936 260144641.875213056 2769228810000.1178883463696 547981281.244140625
759333136.688747536 3852587765601.1485512441856 14164684960000.1121144263281 655360000.108243216 11338204200625.5451216326656
815730721.181063936 3896774700625.6455847578896 130321.1026625681 104976.193877776 6504586067281.8854344140625
1387488001.373301041 50625.83521 1365534810721.1749006250000 1121513121.373301041 1156418486161.8957450410000
6802837650625.5712654493456 2237205241441.2873716601616 1355457106081.14757890560000 1020150500625.6232012960000 937890625.1222830961
104976.136048896 11840653050625.6044831973376 577200625.562448656 916636176.454371856 13990263006736.3941340648961
136048896.1049760000 8118761230336.11117396444176 193877776.1196883216 236421376.429981696 855036081.174900625
1647857448721.3637263079921 3282314864656.6602890412881 181063936.741200625 11512204705296.2200843458576 174900625.151807041
136048896.1146228736 937890625.592240896 11239665258721.1618961043456 6652458343696.8273769005056 3797883801856.6602890412881
9314758936081.10427790765681 562448656.244140625 3341233033216.2094413889681 10243334671441.15904215784081 10000.65536
104060401.163047361 1032386052096.11968832160000 8312865305616.10875854196736 492884401.168896016 126247696.835210000
1121513121.1536953616 15936095936016.13004685652401 38416.10000 7520406736896.6990080303376 50625.65536
2626114239841.3054399363856 1003875856.1222830961 3647809685776.2387176412401 5076013506001.1971847850625 1073283121.193877776
9208578670096.2418052990081 146410000.519885601 8752130560000.1448193221281 3637263079921.2025637716001 3963766428241.1712789917696
6184815851041.8650804500625 577200625.1445900625 1234134359056.4669488810000 688747536.1475789056 562448656.244140625
815730721.130321 1016096256256.3841600000000 959512576.466948881 130321.14641 1165365589441.13032100000000
83521.981506241 14223186420496.2675975777281 981506241.1506138481 506250000.121550625 2394867671296.4205058789376
7611645084241.1912622616576 4275978808336.10828022035216 1171350625.592240896 28561.28561 639128961.1536953616
3311675679601.13674678889041 104976.83521 121550625.50625 577200625.533794816 1475789056.141158161
533794816.442050625 3214565712241.13961350047121 146410000.108243216 1003875856.1506138481 50625.130321
matriisin jäsenien kokonais-summa on: 527257947110132.9002487349303500
real 0m0,006s
user 0m0,004s
sys 0m0,002s
tarkistukseksi bc:n laskema summa : 527257947110132.90024873493035
real 0m0,002s
user 0m0,001s
sys 0m0,003s
- kopioi koko koodi-alue päätteeseen yhdellä kertaa ja paina enter
Koodia: [Valitse]
clear; koematriisi=($(for n in {1..170}; do apu1=$SRANDOM; apu2=$SRANDOM; echo $((1${apu1:9}${apu2:8}**4)).$((1${apu2:9}${apu1:8}**4)); done)); echo; echo yhteenlaskettavien joukko:; echo; echo ${koematriisi[@]} | xargs -n$(($(tput cols)/35)) | column -t; echo
# selitystä: | xargs -n$(($(tput cols)/35)) | column -t muodostavat BASH:in super-hyvän formatointi-ohjelman joka formatoi vasta tuloksen
function desisumma () { apu=($( eval echo \${$1[*]#*.})); lkm=${#apu[@]}; apu=$(printf "1%-16s+" ${apu[@]}); apu=$(echo ${apu// /0}); apu=${apu%+}; apu=$(($apu-$lkm*10000000000000000)); echo ;}
function kokosumma () { echo -n 'matriisin jäsenien kokonais-summa on: ';bpu=($( eval echo \${$1[*]%.*})); bpu=${bpu[@]}; echo $((${bpu// /+}+${apu:0: -16})).${apu: -16} ;}; time { desisumma koematriisi; kokosumma koematriisi ;}
time echo 'tarkistukseksi bc:n laskema summa : '$( echo ${koematriisi[@]} | tr ' ' + | bc -l)
tuloste on jotain tämän kaltaista (sillä jokaisella ajo-kerralla muodostetaan ensin uudet numerot):yhteenlaskettavien joukko:
10427790765681.9314758936081 12280707219456.2504508814096 8195990282496.2488619831296 1249198336.1121513121 5861899530496.7871531640625
2520473760000.1421970391296 13448539200625.5185097880561 2025637716001.3743764484161 2457068790016.2229897104656 959512576.796594176
3787013300625.6439662447201 3491998578721.9660714532561 157351936.276922881 1642047467776.2449228130001 1536953616.1171350625
260144641.875213056 83521.187388721 705911761.126247696 395254161.322417936 157351936.1330863361
623201296.1275989841 9336104694016.11637711365281 252047376.875213056 1222830961.479785216 11840653050625.6044831973376
5580787292161.9926437890625 10000.38416 3185853730816.7648371893761 12072122454016.4275978808336 163047361.1073283121
6327217036816.7146131900625 2356596484641.15122640998656 607573201.1026625681 2052941630481.9187452028561 2296318960321.1951955471376
221533456.221533456 2496554842401.8792909200656 2480703750625.5653761639696 1385858700625.5337948160000 130321.28561
2425818710016.11512204705296 7394054078401.13476652155136 373301041.418161601 1427186233201.2944999210000 1057187014416.3841600000000
112550881.303595776 15494111297536.4915625528641 1026625681.1445900625 1146228736.38416 13932481925376.2593262550321
14252505012001.3512479453921 11764241449216.2585098014976 2303789694976.2536514910736 6455847578896.4359848400625 1097199376.623201296
592240896.1171350625 14223186420496.2593262550321 2760652033441.15431729448976 362673936.1171350625 168896016.442050625
1861107122176.11738853292401 429981696.479785216 8550360810000.1396105301761 2266617569841.10312216477696 981506241.777796321
10106606869921.3700887165361 705911761.303595776 14641.28561 835210000.104060401 1501725251601.8978179242321
9019744817521.2918114646001 7076456545921.1551160647936 260144641.875213056 2769228810000.1178883463696 547981281.244140625
759333136.688747536 3852587765601.1485512441856 14164684960000.1121144263281 655360000.108243216 11338204200625.5451216326656
815730721.181063936 3896774700625.6455847578896 130321.1026625681 104976.193877776 6504586067281.8854344140625
1387488001.373301041 50625.83521 1365534810721.1749006250000 1121513121.373301041 1156418486161.8957450410000
6802837650625.5712654493456 2237205241441.2873716601616 1355457106081.14757890560000 1020150500625.6232012960000 937890625.1222830961
104976.136048896 11840653050625.6044831973376 577200625.562448656 916636176.454371856 13990263006736.3941340648961
136048896.1049760000 8118761230336.11117396444176 193877776.1196883216 236421376.429981696 855036081.174900625
1647857448721.3637263079921 3282314864656.6602890412881 181063936.741200625 11512204705296.2200843458576 174900625.151807041
136048896.1146228736 937890625.592240896 11239665258721.1618961043456 6652458343696.8273769005056 3797883801856.6602890412881
9314758936081.10427790765681 562448656.244140625 3341233033216.2094413889681 10243334671441.15904215784081 10000.65536
104060401.163047361 1032386052096.11968832160000 8312865305616.10875854196736 492884401.168896016 126247696.835210000
1121513121.1536953616 15936095936016.13004685652401 38416.10000 7520406736896.6990080303376 50625.65536
2626114239841.3054399363856 1003875856.1222830961 3647809685776.2387176412401 5076013506001.1971847850625 1073283121.193877776
9208578670096.2418052990081 146410000.519885601 8752130560000.1448193221281 3637263079921.2025637716001 3963766428241.1712789917696
6184815851041.8650804500625 577200625.1445900625 1234134359056.4669488810000 688747536.1475789056 562448656.244140625
815730721.130321 1016096256256.3841600000000 959512576.466948881 130321.14641 1165365589441.13032100000000
83521.981506241 14223186420496.2675975777281 981506241.1506138481 506250000.121550625 2394867671296.4205058789376
7611645084241.1912622616576 4275978808336.10828022035216 1171350625.592240896 28561.28561 639128961.1536953616
3311675679601.13674678889041 104976.83521 121550625.50625 577200625.533794816 1475789056.141158161
533794816.442050625 3214565712241.13961350047121 146410000.108243216 1003875856.1506138481 50625.130321
matriisin jäsenien kokonais-summa on: 527257947110132.9002487349303500
real 0m0,006s
user 0m0,004s
sys 0m0,002s
tarkistukseksi bc:n laskema summa : 527257947110132.90024873493035
real 0m0,002s
user 0m0,001s
sys 0m0,003s