Yaşama cevap, evren ve her şey [kapalı]


43

Giriş : Derin Düşünce hesaplandı 7,5 milyon yıllık bir sürede evrenin ve her şeyin hayatına cevap , çözüm oldu 42.

Herhangi bir programlama dilinde bir program yazın 75, hesaplamak, istediğiniz her şeyden başlayarak numarayı verin 42.

NB Sayı 42, sadece betiğinizde kodlanmış değil, bir şekilde (rastgele sayılar, ne istersen) hesaplanmalıdır.

Önerildiği gibi, sleepişlevlerini veya eşdeğer işlevlerini kullanamazsınız . Yaratıcı olun.


6
Bu, insanların varyasyonlardan ziyade yaratıcı bir şekilde nasıl bir cevap bulabileceklerini görmek için bir popülerlik yarışması olarak daha iyi hizmet edebilirsleep(75);print("%d\n",41+1);
Josh

30
Hesaplamak yaklaşık 75 saniye sürer. Ama bilgisayar çipleri çok çeşitli ... Bu nasıl mümkün olabilir - makinemde 75 saniye sürebilir, ancak bir sonraki bilgisayar 7.5 saniye içinde
canlandırabilir

7
Without sleepP: Mevcut cevaplar çok donanım bağımlı Herhalde benim makinede 750s alacak makinenizde 75S gerekenlere ... hayal olacak
Josh

3
timeapi.org/utc/now . Bu, dilinizin uykuya benzer kütüphanelerini kullanmanın en iyi alternatifi gibi görünüyor. Tüm bu alır birkaç http istekleri.
Cruncher

3
Yanlışlıkla benim 10 dakika sürdü! : O
Doorknob

Yanıtlar:


53

Bu, 1GHz hızaşırtılmış ahududu pi üzerinde yaklaşık 75s alır

#!/usr/bin/env python
from itertools import product, count

for n in count(1):
    i = 0
    for a, b, c, d in product(range(n), repeat=4):
        if a > b > c > d > 0 == (a*b-c*d)%n == (a*c-b*d)%n == (a*d-b*c)%n:
            i += 1
    if i == n:
        break
print i

Çalışır çünkü:

Şekil 42, ab-cd, ac-bd ve ad-bc'nin her birinin katları olduğu şekilde, her biri değerin kendisinden daha az olan dört farklı pozitif tamsayı a, b, c, d kümelerinin sayısı olan bilinen tek değerdir. değer. Başka değerler olup olmadığı açık bir soru olmaya devam ediyor

http://www.mathpages.com/home/kmath255.htm


12
Yani ya bu denklemi sağlayan yeni bir numara bulacaksın ya da 42 :)
basacaksın

1
@FezVrasta, çünkü son satır kayboldu. doh!
gnibbler

2
Vaov! Mükemmel matematik programı ve hızaşırtma olayı ... ha ha ha +1!
Tomas,

1
Bu cevabın 42 puanlık bir puan kazanması komik (komik değil)
pwned

1
Overloklu ahududu pi yüzünden bunu gerçekten hak etmek istiyorum, ama şu anki skorunu veremiyorum. Kötü bir
hisim

43

Python 2.7

Soruyu cevaplamak için, soruyu bilmek gerekir - ve soru şudur:

Altıyı 9'a çarpınca ne elde edersin? Düzeltme için TRiG'e teşekkürler

Yani Derin Düşünce , üs 13'ün kullanışlı kullanımına dayanır :

6 13 x 9 13 = 42 13

Sabitlerimizi ithal ediyoruz:

from random import randrange as scrabbleBag, randint
from datetime import datetime,timedelta
life,universe,everything,nothing=6,9,1,-3
endOfTheUniverse = 80

Ayrıca, dünya-eşyalarımızı, bir çırpma fayans çantası , Arthur (biraz garip olsa da tahmin edilebilir bir tür bilgisayar), Trillian (rasyonel kahramanımız) olarak tanımlıyoruz.

tile = lambda i: scrabbleBag(26)
arthur = lambda i: int(`i`,life+universe+everything+nothing)
trillian = lambda i: ''.join(map(str,divmod(i,life+universe+everything+nothing)))

Biz tanıtmak Zaphod sonunda yakın bizim kadar buhar biterse rastgele sıralama, - endOfTheUniverse.

zaphod = lambda : not(randint(0,(endOfTheUniverse-(datetime.now() - start).seconds)**3))

Ve olumlu tutumu herhangi bir partiyi durdurabilecek olan Paranoyak Android'den Marvin :

marvin = lambda : endOfTheUniverse<(datetime.now() - start).seconds

Ve bu 4 karakteri, hesaplayana kadar karışımın içinden geçmeye devam ediyoruz :

while answer is not life * universe * everything:
  rack = sum(tile(i) for i in range(7))
  answer = (zaphod or marvin) and arthur(rack)
print trillian(answer)

Tam deepthought.py:

from random import randrange as scrabbleBag, randint
from datetime import datetime,timedelta
life,universe,everything,nothing=6,9,1,-3
endOfTheUniverse = 80

tile = lambda i: scrabbleBag(26)
arthur = lambda i: int(`i`,life+universe+everything+nothing)
trillian = lambda i: ''.join(map(str,divmod(i,life+universe+everything+nothing)))

start = datetime.now()

zaphod = lambda: not(randint(0,(endOfTheUniverse-(datetime.now() - start).seconds)**3))
marvin = lambda: endOfTheUniverse<(datetime.now() - start).seconds

answer = None
while answer is not life * universe * everything:
  rack = sum(tile(i) for i in range(7))
  answer = (zaphod() or marvin()) and arthur(rack)
print trillian(answer)

Bu, 75 saniyenin üzerinde bir yerde bitmeli, kesinlikle 80 saniyede bitiyor. Bazen daha önce Zaphods Infinite Impbability Drive'a .


1
cevap harika ama eğer onu 2.7.2'de çalıştırırsam hata atıyor File "main.py", line 13, in zaphod = not(randint(i,(80-(datetime.now() - start).seconds)**3)) NameError: name 'i' is not defined:(
Fez Vrasta

1
@FezVrasta Üzgünüm, yanlışlıkla bazı yanlış kodlar ekledim. Şimdi düzeltildi, çalışması gerekiyor.

4
harika, işe yarıyor :) şimdi soruyu hesaplamak için daha büyük bir bilgisayara ihtiyacımız var!
Fez Vrasta

8
"Üzgünüm bir dava olabilirim, ancak üs 13'te şakalar yazmam." - DNA
MikeTheLiar

3
Bu şimdi 42 oyda oturuyor. Daha fazla oy mu istiyorum yoksa bu soru için mümkün olan en havalı puanı mı istiyorum?

13

DOS Toplu - hayata cevap, Evren ve her şey

Basitleştirdiği için mynameiscoffey'e teşekkürler!

Farklı kaydet answer.bat:

@ ping 127.0.0.1 -n 76 >nul && @ echo %~z0

Sonra çalıştırın ve 75 saniye bekleyin:

> answer
42

Derin Düşüncenizin farklı bir fikri var gibi görünüyor , bana 40 : P
Fez Vrasta

Notepad ++ kullandım, Windows 8 x64 kullandım
Fez Vrasta

Not

Harika, nasıl çalıştığını tahmin edebilir misin?

2
neden dağınık CRLF sorununu önlemek için tek bir satır yapmıyorsunuz @ ping 127.0.0.1 -n 76 >nul && @ echo %~z0, bir çift
CRLF'ye

10

Bash (OS X)

Bu muhtemelen çok fazla sorun yaşamadan diğer sistemlere taşınabilir. sayKonuşma metni komut satırı yardımcı programı olarak kullandığınız her şeyle değiştirin . -fSeçenek adlandırılmış dosyadan girdi alır.

Biraz şansla, doğru rakamı bile çıkarabilir :-)

Bu benim sistemde çalıştırmak için neredeyse tam 1 dakika 15 saniye sürer (OS X 10.5).

#!/bin/bash
grep -E '^life|universe|and.everything|[ultimate]question$' /usr/share/dict/words | sed 's/$/,/' | nl > "$TMPDIR/deepthought"
say -v Alex -f "$TMPDIR/deepthought"
nw=`cat $TMPDIR/deepthought | wc -l`
say -v Alex "The answer, to the ultimate question, is: $nw"
echo $nw
rm "$TMPDIR/deepthought"

10

MATLAB

Bu zor bir şey. Soruyu gerçekten bilmediğimizden, cevabı almanın tek geçerli yöntemi küresel bir optimizasyon yöntemidir. Bu durumda benzetilmiş tavlama yöntemini seçtim , çünkü bu bana daha önce zor sorulara güzel cevaplar verdi.

Bütün bu kod, girişin hayatın kendisi olduğu bir fonksiyonun optimal değerini aramaktır. Ve şaşırtıcı olan, işe yaraması. Öyleyse, Derin Düşünceyi doğruladım mı?

tic;

the_answer=round(simulannealbnd(@(life)abs(3.7376696-log(life)),140489, ...
           -inf,inf,saoptimset('MaxFunEvals',10^16)))
toc;

Çıktı:

the_answer =

    42

Elapsed time is 74.892428 seconds.

5

C - 1089 bayt

#include <time.h>
#include <stdio.h>

int answer(int the)
{
   int to = 0;

   while (the != 0) {
      to *= 10;
      to += the%10;
      the /= 10;
   }
   return to;
}

int optimism(int the)
{
    return abs(the);
}

int getRandomNumber()
{
    return 4; // chosen by fair dice roll.
              // guaranteed to be random.
}

int main()
{
    // initialize
    int life = getRandomNumber(), universe, everything;

    // get inverse answer
    int question = clock();
    while (clock()-question < CLOCKS_PER_SEC*75) {
        life += getRandomNumber();
    }
    life = optimism(life); // optimism is the best way to see life
    life %= 1000;

    // avoids unwanted race conditions with the answer by "Lego Stormtroopr"
    if (life<100 || life>997) {life -= getRandomNumber()*100;}
    if (optimism(life/100%10 - life%10) < 2) {life += getRandomNumber();}
    universe = answer(life);
    everything = optimism(life<universe?life-universe:universe-life);

    printf("%d\n", (answer(everything)+everything+3)/26);

    return 0;
}

Sıkıştırılmış:

#include <time.h>

int f(int d) {
   int e = 0;
   while (d != 0) e = e*10+d%10, d /= 10;
   return e;
}

int main() {
    int a = 4, b, c, d = clock();
    while (clock()-d < CLOCKS_PER_SEC*75) a += 4;
    a = abs(a)%1000;
    a -= a<100||a>997?400:0;
    a += abs(a/100%10-a%10)<2?4:0;
    b = f(a);
    c = abs(a<b?a-b:b-a);
    return (f(c)+c+3)/26;
}

4

Yakut

t = Time.new.to_i
n = 0
loop{
  break if Random.new(n).rand(2000000) == Random.new(374076).rand(1000000)
  n += 1
}
puts Random.new(n).rand(2000000)
puts "Took #{Time.new.to_i - t} seconds; seed was #{n}"

Makinemdeki çıktı:

42
Took 123 seconds; seed was 3771996

Bu, RNG'yi kötüye kullanır. ;)


1
75 saniye sürmesini nasıl sağlıyorsunuz?
Pierre Arlaud,

1
@Arlaud Her döngüde 2 rastgele sayı üreten, bir döngü için 3.7 milyon yineleme yapar! Teknik olarak eğer bir süper bilgisayara sahip olsaydınız daha hızlı olabilirdi, ancak herhangi bir makul donanım için en az 75 saniye sürerdi ve sıkıcı olmak ve uyku ya da zaman yöntemlerini kullanmak istemiyorum.
Doorknob

Güncelleme: ... peki şimdi Took 25 seconds; seed was 3771996ortalama performans dizüstü bilgisayarıma yazdırıyor . Yani, ah ... yalan söyledim. : P
Doorknob

4

C

#include <stdio.h>
#include <time.h>

int i, j;

int main() {
    i = clock();
    while(clock() - i < 75 * CLOCKS_PER_SEC);
    for(i = j = 0 ; i < 48 ; i++)
        j += "The answer to Life, the Universe, and everything"[i];
    printf("%i", j % 157);
}

2
bir clock()değer no sleep()
aşıncaya

popülarite-yarışma.
Pierre Arlaud,

@ArlaudPierre Cevabı gönderdiğimde kod-golf oldu. Her neyse, şimdi düzeltildi.
Oberon

4

JavaScript - "Yaşamın ve her şeyin cevabını" bir denklem çözerek bulma

Bu denkleme bir göz atalım:

1 / p  +  1 / q  +  1 / r  =  1 / 2

Birçok çözümler vardır, ancak isterseniz rmümkün büyüklüğünde olmak ve p, qve ryerlilerde olmak sadece iki çözüm vardır:

1/3 + 1/7 + 1/42 = 1/2 ve 1/7 + 1/3 + 1/42 = 1/2

ile p <= q <= r, sadece bir çözüm var ve rher zaman eşit42

Bir denklemi çözmek için en etkili yöntem nedir?

Tüm olasılık değerlerini deneyerek!

İşte kod:

var n = Math.pow(2, 32); 
for (var i = 1; i <= n; i++)  
{ 
    for (var j = 1; j <= n;  j++)
    {
        for (var k = 1; k <= n; k++)
        {
            if ((1 / i + 1 / j + 1 / k) == 1 / 2)                
               throw k;                
        }
    }
}

Bu ne kadar zaman alır ? Dürüst olmak gerekirse, bilmiyorum çünkü sonuna kadar kullanamadım.

Ancak, küçük ndeğerlerle deneyebilirsiniz (daha büyük veya eşit olması gerekir 42) ve doğru sonucu alırsınız. Gibi küçük değerler için n = 2000, dizüstü bilgisayarımda neredeyse bir dakika sürer. Bu örnekte verilen büyük değerlerle günler, haftalar hatta yıllar alacağını tahmin ediyorum !!!

Çözümü yaklaşık 75 saniye içinde bulma:

İlk sorudan bir gereksinim, uygulanması yaklaşık 75 saniye sürmesidir. Bunu başarmanın bir yolu, zaman içinde algoritmanın karmaşıklığını otomatik olarak ayarlamaktır:

var now = new Date().getTime();
var iterations = 0; 
var n = Math.pow(2, 32); 
for (var i = 1; i <= n; i++)
{
    for (var j = 1; j <= n; j++)
    {
        for (var k = 1; k <= n; k++)
        {
            if ((1 / i + 1 / j + 1 / k) == 1 / 2)               
                throw k;

            if (new Date().getTime() - now > 1000) //one second has elapsed
            {
                now *= 2; //never wanna see you again
                n = 42;   //this is the minimum               
                while(3 * n * n + 7 * n + 42 < iterations * 74) n++;
                i = j = k = 0; //reset
            }
            iterations++;
        }
    }
}

Nasıl çalışır n? örneğin: 500 yineleme yapmak bir saniye sürerse, 5000 yineleme yapmak 10 saniye sürer. 75 ile çarpılmadığını çünkü 75'e çarptığımızı çünkü zaten "kıyaslama" için bir saniyemizi harcadık.

matematik için kaynak ve kredi


2

151 karakter

class P
{
   static void Main()
   {
      var w = new System.Diagnostics.Stopwatch();
      w.Start();
      while (w.ElapsedMilliseconds < 75000);
      System.Console.Write((int)'*');
   }
}

Bu iplik uykuya nasıl eşdeğer değildir?
valdetero

Elbette iplik uykusuna eşdeğer değildir. İplik uykusu, ana ipliği belirtilen süre boyunca etkin değil yapar. Bu program ana iş parçacığını etkin değil. Geçen süreyi karşılaştırmak için ana ipliği içerir. Belirtilen süre (75s) geçtiğinde ve çıktıyı yazdırır.
Merin Nakarmi

<i> İşlevsel olarak </i> biliyorum, aynı değil, aynı öncül izler. OP, yaratıcı olmasını istedi ve dilin 75 saniye beklemesini istemedi - işte böyle.
valdetero

1
Bana göre bu çözüm DOS'un çözümü kadar iyi / kötü. DOS çözümü ping yaparak programı meşgul ediyor ve bu geçen süreyi karşılaştırarak kendisini meşgul ediyor. Hiçbir fark görmüyorum. Bu çok fazla puan kazanabiliyorsa, bunun da olması gerekir. Bu arada, ping komutu dahili olarak 'uyku' yapar.
microbian

2

C ++

Hesaplar bölümleri arasında 10 oldukça verimsiz yöntemle. Sistemimde bir Sürüm oluşturma çalışmasına katılmam 130s aldı, ancak yeterince hızlı bir PC’ye sahip birisinin ~ 75’lerde çalıştırabilmesi ...

#include <algorithm>
#include <iostream>
#include <numeric>
#include <set>
#include <vector>

using namespace std;

bool NextPermutationWithRepetition(vector<int>& perm, int n) {
    int carry = 1;
    auto it = begin(perm);
    while (it != end(perm) && carry) {
        ++*it;
        carry = (*it - 1) / n;
        *it = ((*it - 1) % n) + 1;
        ++it;
    }
    if (carry) {
        if (perm.size() == n) return false;
        perm.push_back(carry);
    }
    return true;
}

int main() {
    vector<int> perm;
    set<vector<int>> uniquePartitions;
    const int n = 10;
    while (NextPermutationWithRepetition(perm, n)) {
        if (accumulate(begin(perm), end(perm), 0) == n)  {
            auto sortedPerm = perm;
            sort(begin(sortedPerm), end(sortedPerm));
            uniquePartitions.insert(sortedPerm);
        }
    }
    cout << uniquePartitions.size() << endl;
}

2

JavaScript

Bu bir şeyi uyarmak için biraz zaman alacak ... ama sana göstereceği için sana değer vereceği için evrendeki her şeye cevap!

var x = 0, b = document.body.children[0];
var theAnswer = function(){
  b.textContent = ++x;
  if(x == 125774) alert(Math.pow(x, 1/Math.PI)).toFixed(0);  
  else setTimeout(theAnswer);
};
theAnswer();

gösteri


1
75 saniyeden çok daha fazlası ...
Fabinout

ama bu tamamen değer!
rafaelcastrocouto

2

piton

Bazen bir cevap sadece bir hesaplamanın sonunda açıktır, ancak sonları ile ilgili yönleri açıktır.

Ve az bilinen, Deep Thought'un ekildiği girdilerin sırasıdır:

271, 329, 322, 488, 79, 15, 60, 1, 9

Dolayısıyla:

from datetime import datetime
n = datetime.now
o = n().second

def bs(x,n,t,f):
    return ([t]+bs(x-2**(n-1),n-1,t,f) if x>=2**(n-1) else [f]+bs(x,n-1,t,f)) if n>0 else []

u = [271,329,322,488,79,15,60,1,9,'#',' ','',]
for i, g in enumerate(u[:5]):
    while n().second!=(o+(i+u[7])*u[5])%u[6]:
        pass # the dice
    print u[11].join(bs(g,*u[8:11]))

Et voila - cevap 75 saniye sonra verilir.


2

Montaj (gcc ile bağlantılı)

Yeterince yavaş bir bilgisayarda (CPU hızı ~ 2Hz) bu işlemin çalışması yaklaşık 75 saniye sürecektir:

  .globl        main
main:
  movl  $52, %edx
  movl  $0, %edi
l4:
  addl $1, %edi
  cmp %edx, %edi
  jl l4
  call  putchar
  movl  $50, %edx
  movl  $0, %edi
l2:
  addl $1, %edi
  cmp %edx, %edi
  jl l2
  call  putchar
  movl  $10, %edx
  movl  $0, %edi
ln:
  addl $1, %edi
  cmp %edx, %edi
  jl ln
  call  putchar
  ret

1

Bash ve Linux yardımcı programları:

#!/bin/bash

if [ $(uname) == "Linux" ]; then
    : $(arecord -q | head -c 600000)
    man -s4 random | head -n1 | tr -d ' ' | wc -c
else
    echo "Deep Thought didn't run $(uname)"
fi

Derin Düşünce hesaplama boyunca dikkatlice dinliyor.


1

Java (227 karakter)

Bitsel olarak yapılan manipülasyonların eğlenceli olmadığını kim söylüyor? Yoksa bu java kafa karıştırıcı olamaz mı?
75 saniye boyunca döngü kurarız ve sonra yanıtı artırırız.

public class T{public static void main(String[]b){long d=(1<<16^1<<13^1<<10^31<<3);long t=System.currentTimeMillis();long e=t+d;for(;e>System.currentTimeMillis();){}d=d%((((d&~(1<<16))>>7)^(1<<4))^1<<2);System.out.println(d);}}

Ungolfed

public class T
{
    public static void main(String[] b)
    {
        long d = (1 << 16 ^ 1 << 13 ^ 1 << 10 ^ 31 << 3);
        long t = System.currentTimeMillis();
        long e = t + d;
        for (; e > System.currentTimeMillis();){}
        d = d % ((((d & ~(1 << 16)) >> 7) ^ (1 << 4)) ^ 1 << 2);
        System.out.println(d);
    }
}

0

PureBasic

Farklı donanımların farklı sonuçlar üretmesi gerçeğine uygun olarak, bunun için sabit bir cevap yoktur. Geçen bir zaman işlevini kullanıyorum, bu yüzden hesaplamayı ne zaman durduracağımı biliyorum.

Temel olarak, çıkarıldığında en büyük iki asal sayıyı hesaplar.

Makineniz ne kadar hızlı olursa, astarlar o kadar büyük olur :-)

OpenConsole()

sw = ElapsedMilliseconds()
FoundFigure1 = 0
FoundFigure2 = 0

PreviousPrime = 1

For i = 3 To 10000000000 Step 2
  PrimeFound = #True
  For j = 2 To i-1
    If i % j = 0
      PrimeFound = #False
      Break
    EndIf
  Next
  If PrimeFound = #True
    If i - PreviousPrime = 41+1
      FoundFigure1 = PreviousPrime
      FoundFigure2 = i
    EndIf

    PreviousPrime = i
  EndIf

  If ElapsedMilliseconds() - sw > 75000
    Break
  EndIf
Next

Print("Answer: ")
Print(Str(FoundFigure2 - FoundFigure1))
Input()

0

MeatSpace

Yürümek için servant^H^H^H^Hcomputer(insan, köpek ya da rakam karoları toplayan herhangi bir şey olabilir) yaklaşık 70/4 saniye süren bir mesafeden uzaklaşın . Buraya büyük bir sayı 4ve büyük bir sayı yerleştirin 2. Sizi computerçıkış noktasına yerleştirin. Zamanlayıcıyı başlatın, sayı deposuna doğru ilerleyin ve her seferinde bir sayı geri getirin.

Onları almak ve yere koymak için 5 saniye ayırdım.


0

Başka bir C # Örnek

using System;
using System.Threading;

namespace FourtyTwo
{
    class Program
    {
        static void Main(string[] args)
        {
            DateTime then = DateTime.Now;
            Thread.Sleep(42000);
            DateTime now = DateTime.Now;
            TimeSpan t = now - then;
            Console.WriteLine(t.Seconds);
        }
    }
}

1
"uyku" kullanıyorsunuz
Fez Vrasta

ayy, benim için -10 uyku kullanabildiğin kadar oku!
arazi sahipleri

0

Yakut

75 kez (n) 0.56 güç ekleyebilecek bir program. Değerin is 1

n=1Herhangi bir biçimde nereden elde edilmeliTime diffrence

def solve
  a=0.56
  i=0
  t1=Time.now
  while(i < 75)
        t1 = Time.now
        while((b=Time.now-t1) < 1.0)
        end
        a += 0.56 ** b.to_i
        i += 1
  end
  a.to_i
end

puts solve

Yakut zaman farkını kullanarak Yaklaşık olarak yürütme zamanını doğruladım. 75.014267762


0

PHP

<?php
set_time_limit(80);
ini_set('max_execution_time', 80);
//$start=time();
$count=0;
do{
$rand=rand(0,(75000000/40+2));  
$rand=rand(0,$rand);
    if(($rand==42 || $rand==75-42 || $rand== floor(75/42)) && (!rand(0,(4*2)))
      ){
      $count++;
    }
}while($count!=42);
echo $count;
//echo '<br>elapsed time is '.(time()-$start);
?>

Bu, bu gece alacağım kadar yakın. Adresinden Running tecbrat.com , Ubuntu 10.04, çalışan eski bir IBM Netvista P4 benim son 2 pistlerinde 69 saniye ve 78 saniye gösterdi.


0

JavaScript (Bitwise şaşırtmaca) (136 byte için fena değil!)

Hile tarafında bir parça olarak görülebilir, ancak fonksiyonlar titizlikle düşünülmüş, akılda tutularak, 75000 ms değerinin 42'yi hesaplamak için kullanılan fonksiyonlardan önce hesaplanacağı akılda tutulmuştur. )

setTimeout("alert($=((_=_=>(_<<-~-~[])|-~[])(_(-~[])))<<-~[])",($=$=>$<<-~-~-~[]|-~[])((_=_=>_<<-~[]|-~[])(_(_(_($($($(-~[]))))))))^-~[])


Sözdizimi hatası alıyorum ...Unexpected token >
rafaelcastrocouto

Firefox 26.0 üzerinde çalışan ve x = x => f (x) notasyonu kabul eden bir çalışma var ... Bunu hangi sürümde kullanıyorsunuz?
WallyWest

chrome 31'i windows 7'de çalıştırıyorum ...
rafaelcastrocouto

1
@ rafaelcastrocouto Ah, ne yazık ki şişman ok gösterimi, ifadelerin her birinde iki işlevi tanımlamak için kullanılmış, yalnızca Firefox 22 ve üzeri sürümler için çalışıyor ...
WallyWest

Neredeyse ağlıyorum ... çözümün gerçekten de güzel!
rafaelcastrocouto

0

Bu tür şeylerle pek iyi değilim. Bir uygulama geliştiricisiyim ama C konusunda hiç eğitim almadım ve çoğunlukla sunuculardan bir şeyler toplayan ve bilgilerin güzel görünmesini sağlayan uygulamalar ...

Bunun işe yarayıp yaramayacağına dair hiçbir fikrim yok ve orada bir miktar ekstra kod var çünkü bir iphone uygulamasında ve 42'ye ulaşıldığında bir ilerleme durumu ve uyarı görünümü gösteriyorum:

#import "ViewController.h"
#import "MBProgressHUD.h"

@interface ViewController ()

@property (nonatomic, retain) MBProgressHUD * hud;

-(IBAction)answer:(id)sender;

@end

int number;
int initialCounter;

@implementation ViewController
@synthesize hud;

-(IBAction)answer:(id)sender
{
    hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
    hud.mode = MBProgressHUDModeIndeterminate;
    hud.labelText = @"Calculating";

    [self calculate];

    number = arc4random();
}

-(void)calculate
{

    int random = arc4random();

    if (number == 42){
        hud.hidden = YES;
        UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Complete!"
                                                          message:@"The answer is 42."
                                                         delegate:nil
                                                cancelButtonTitle:@"OK"
                                                otherButtonTitles:nil];

        [message show];
    }

    else if(number<42){
        number = number + random;
        dispatch_async(dispatch_get_main_queue(), ^{
             [self calculate];
        });
    }

    else if(number>42){
        number = number - random;
        dispatch_async(dispatch_get_main_queue(), ^{
             [self calculate];
        });
    }
}

@end
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.