Siis aina on jonossa kaikki 6 ihmistä.
Millä ohjelmointikielellä tämän tehtävän ratkaisu vie vähiten merkkejä?
Montako erinlaista jonoa 6 ihmisestä muodostuu
45
224
Vastaukset
- Anonyymi
C vei 123 merkkiä.
#include <iostream>
int f( int n)
{ if (n == 0) { return 1; } return n*f(n-1); }
int main() { std::cout << f(6) << "\n"; } - Anonyymi
Yksi jono jossa kaikki samat kusipäät.
- Anonyymi
Erinlaista ei yhtään, erilaisia voi jokunen tullakin.
- Anonyymi
Tuo on ihan homokieltä tuo "erilaisia". Erinlaisia tai erillaisia tuntuu sopivan miehen suuhun paremmin, ku se miehe siitin, jota nämä torjunta-aineiden tuottamat homot lutkuttaa...
- Anonyymi
Anonyymi kirjoitti:
Tuo on ihan homokieltä tuo "erilaisia". Erinlaisia tai erillaisia tuntuu sopivan miehen suuhun paremmin, ku se miehe siitin, jota nämä torjunta-aineiden tuottamat homot lutkuttaa...
Eikö tämä homojenasiantuija ja äidinkielen opettaja osanneet laskea, vai eivätkö tiedä vaan tietotekniikasta mitään.
- Anonyymi
Anonyymi kirjoitti:
Tuo on ihan homokieltä tuo "erilaisia". Erinlaisia tai erillaisia tuntuu sopivan miehen suuhun paremmin, ku se miehe siitin, jota nämä torjunta-aineiden tuottamat homot lutkuttaa...
Asiantuntija vastaa taas.
- Anonyymi
Anonyymi kirjoitti:
Eikö tämä homojenasiantuija ja äidinkielen opettaja osanneet laskea, vai eivätkö tiedä vaan tietotekniikasta mitään.
Olet joku homo ja et tajua meitä normaaleja. Katoppa Areenasta ohjelma, jossa kasvismyrkyt aiheuttaa rotillekkin homostelua.
- Anonyymi
#! /bin/bash
expr 6 \* 6- Anonyymi
Tämä on väärin!
- Anonyymi
Anonyymi kirjoitti:
Tämä on väärin!
Kerroppa arvuuttelia tuo, kun alat päteä, ! Tasan on oikein, ellei jonosta aleta hyppimään ristiinrastiin toiseen jonoon, siittähän tulee loputon?
- Anonyymi
Täällä on niin vähän tietotekniikasta jotain tietäviä, että jos ne kaksi osaajaa jotain kirjoittelee, heti haukutaan homoksi.
- Anonyymi
Ohjelmien rustaaminen ei ole koko tietotekniikka.
- Anonyymi
Anonyymi kirjoitti:
Ohjelmien rustaaminen ei ole koko tietotekniikka.
Ei täällä kukaan ole mitään rustannut, vai missä olisi?
T:; Keppi Keinonen - Anonyymi
Ei kukaan ole haukkunut ketään.
- Anonyymi
JS, 42 merkkiä
var f=n=>n<2?1:n*f(n-1);console.log(f(6));- Anonyymi
Tämä on oikein.
- Anonyymi
Pyyttönillä.
#! /bin/python3
n=6
tulos=1
while n>1:
tulos*=n
n-=1
print(tulos)- Anonyymi
Tämä on väärin.
- Anonyymi
Anonyymi kirjoitti:
Tämä on väärin.
6 * 5 * 4 * 3 * 2 * 1 = 720
MOT
- Anonyymi
Pyytton 3.8:lla voi käyttää perm-funktiota.
#! /bin/python3.8
from math import perm
print(perm(6))- Anonyymi
Minulla änkäs jättiläispythoni aamun sarastaessa wc-pönttöön, ja siitä jatkoi matkaansa perämereen, nyt lisää kahvia ja tupakkia :-).. .. ... ...
- Anonyymi
Anonyymi kirjoitti:
Minulla änkäs jättiläispythoni aamun sarastaessa wc-pönttöön, ja siitä jatkoi matkaansa perämereen, nyt lisää kahvia ja tupakkia :-).. .. ... ...
Et ole sitten Lehtomäen laitteistoa mökkiisi hommannut.
- Anonyymi
Python 55 merkkiä.
Tämä on oikein. - Anonyymi
3.8:n toinen uusi matikkafunktio on comb. Esimerkiksi lottoarvonnan 39:stä pallosta saadaan 7 pallon vaihtoehtoja:
>>> from math import comb
>>> comb(39,7)
15380937 - Anonyymi
Anonyymi kirjoitti:
3.8:n toinen uusi matikkafunktio on comb. Esimerkiksi lottoarvonnan 39:stä pallosta saadaan 7 pallon vaihtoehtoja:
>>> from math import comb
>>> comb(39,7)
15380937Hienoa, onkohan siinä nyt kombinaatio, permutaatio vai variaatio laskusta kyse. Python tekee monet asiat yksinkertaisiksi loppukäyttäjälle.
- Anonyymi
Anonyymi kirjoitti:
Hienoa, onkohan siinä nyt kombinaatio, permutaatio vai variaatio laskusta kyse. Python tekee monet asiat yksinkertaisiksi loppukäyttäjälle.
comb(n,k) laskee n!/(k!*(n-k)!), kun k<=n. Muussa tapauksessa palauttaa nollan.
- Anonyymi
Bass Shell 48 merkkiä.
f=1;for((i=2;i<=6;i )){ f=$((f*i)); };echo $f;- Anonyymi
Tämä on väärin.
- Anonyymi
Ohjelmakoodi pitää kirjoittaa selkeäksi, ja sitä on kommentoitava lähdetiedostossa runsaasti, eikä suinkaan ole pyrittävä mahdollisimman kryptiseen lyhyyteen.
- Anonyymi
Tämä on oikein.
- Anonyymi
Anonyymi kirjoitti:
Tämä on oikein.
Tuohan on kopioitu netistä. eikä edes oikein.
- Anonyymi
PHP 50 merkkiä.
$f=1; for($i=1; $i<=6; $i ){$f=$f*$i;}; echo $f;- Anonyymi
Tämä on oikein.
huom. PHP:n interaktiivinen komentotulkki, käynnistetään:
php -a
- Anonyymi
Valitettavasti, rannalle jääneet ruikuttajat sotkivat tämän ketjun.
- Anonyymi
Heapin algoritmillä saattaisi onnistua.
- Anonyymi
Taskulaskimella ja Linuxin laskimella se on 2 merkin mittainen juttu.
6! ja Enteriä perään.
Joo, tiedän, ei kuulu asiaan suoranaisesti.- Anonyymi
Mutta millainen algoritmi niissä laskimissa on sisällä?
- Anonyymi
PERL 60 merkkiä.
'$f=1;for($i=1; $i<=6; $i=$i 1){$f=$f*$i;}; print($f,"\n")'
Ajetaan komentokehotteesta käsin:
perl -e - Anonyymi
Pythonilla on jo ratkaisuja tullut, mutta tässä olisi vähän erilainen, funktionaalinen tapa, (58 merkkiä):
f=lambda n:reduce(lambda a,b:a*b,range(1,n 1))
print(f(6))
SageMath:issä olisi product-funktio valmiina (ja sen voi näköjään vielä lyhentää prod)
prod(range(1, 7))
Noh, jos kirjastojen käyttö sallitaan (Sage tietenkin on kokonaan oma kielensä eikä pelkkä Pythonin kirjasto), niin tuo jo mainittu math.perm on kaiketi paras. Onhan siinä aina importtauksesta tuleva koodin pituus, mutta itse koodi on sitten jo melko lyhyenläntä. - Anonyymi
SPOILER ALERT!!!!
SE Code golfissa:
https://codegolf.stackexchange.com/questions/607/find-the-factorial
Poiminpa tähän nyt tuolta joitain ratkaisuja
JS, 17:
f=n=>!n||n*f(n-1)
Python, 27:
f=lambda x:0**x or x*f(x-1)
Haskell, 17:
f n=product[1..n]
C, 39:
double f(int n){return n<2?1:n*f(n-1);}
C, 23 (häcki!):
f(a){a=a>0?f(a-1)*a:1;}
Onhan tuolla lyhyempiäkin hieman esoteerisemmilla kielillä. Esim.
APL 4 merkkiä:
×/∘⍳
ja MATL 2 merkkiä:
:p
Noh, eikös tuo olisi jo melkein sama asia kuin laskimen "n!"? Ei kai, koska kyseessä lienee oikea ohjelmointikieli: ':' tekee listan ja 'p' laskee sen tulon. Missään ohjelmointikielessä ei asetettane kertomalle omaa merkkiään. - Anonyymi
Approximatiivinen (Stirlingin kaava) ratkaisu Pythonilla.
import math
def f(n):
if n==0: return 1
return (2*math.pi*n)**0.5 * (
n/math.e)**n * (1 1.0/(12*n) 1/(288.0*n**2)
-139/(51840*n**3 - 571/(2488320*n**4))
)- Anonyymi
No, ja piste (että tulee float laskut) nollat unohtu vika riviltä!
- Anonyymi
Ensimmäinen on oikein.
- Anonyymi
C-kielellä:
#include <stdio.h>
int tulos=1;
int funktio(int kertoja) {
tulos=tulos*kertoja;
if (kertoja>=2) funktio(--kertoja);
return tulos;
}
void main(void) {
printf("%d\n",funktio(6));
}
Ketjusta on poistettu 6 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
En voi jutella kanssasi
tietenkään, mutta täällä voin sanoa sinulle, että se sinun hiljaisuutesi ja herkkyytesi eivät ole heikkoutta. Ne ovat ih395150Trump ja Vance murskasivat ja nolasivat Zelenskyn tiedotusvälineiden edessä Valkoisessa talossa.
Jopa oli uskomaton tilaisuus Valkoisessa talossa. Zelensky jäi täydelliseksi lehdellä soittelijaksi suhteessa Trumpiin j5181720Kokoomus haluaa hoitaa flussat yksityisellä, jotta säästettäisiin rahaa ja aikaa
Mies hakeutui Terveystalo Kamppiin flunssaoireiden takia helmikuisena sunnuntai-iltana. Diagnoosiksi kirjattiin influens771100Rakkaus ei iloitse vääryydestä vaan iloitsee yhdessä TOTUUDEN kanssa.
Tajuatteko, että jotkut ihmiset pitävät siitä, kun toiset kaatuvat? He nauttivat siitä, kun toiset mokaavat tai käyttävä3591008- 77943
Anteeksi Pekka -vedätys
Apuna Ry:n somessa levinnyt Anteeksi Pakka -kampanja saa aina vaan kummallisempia piirteitä. ”Mä pyydän anteeksi. Mä53921- 59860
- 228814
Mikä on kaivattusi ärsyttävin piirre?
Mun kaivattu on erittäin vastahakoinen puhumaan itsestä. Kääntää puheenaiheen aina muuhun kun hänestä tulee puhetta.50803Päivi Ollila on tehnyt kunnallisvalituksen saadakseen pidettyä Tarja Pirkkalaisen virassa
Kaupunginhallituksen puheenjohtaja Päivi Ollila on tehnyt kunnallisvalituksen kaupungin johtamisjärjestelyiden muutokses58738