삶, 우주, 그리고 모든 것에 대한 대답


43

소개 : 심층적 사고 계산 우주와 모든 생명체에 대한 대답 은 750 만 년 동안이었습니다 42.

원하는 언어 75부터 계산 하는 데 약 초가 걸리는 프로그래밍 언어로 프로그램을 작성 하고 숫자를 출력하십시오 42.

NB 숫자 42는 스크립트에 하드 코딩 된 것이 아니라 어떻게 든 계산해야합니다 (무작위 숫자, 원하는 숫자).

제안한 바와 같이 sleep기능을 사용할 수 없습니다 . 창의력을 발휘하십시오.


6
이것은 사람들이 대안이 아닌 창의적으로 답변을 얻을 수있는 방법을보기 위해 인기 경연 대회를 제공하는 것이 좋습니다.sleep(75);print("%d\n",41+1);
— Josh

30
계산하는 데 약 75 초가 걸립니까? 그러나 컴퓨터 칩은 매우 다양합니다. 어떻게 가능할까요? 내 컴퓨터에서 75 초가 걸리지 만 다음 컴퓨터에서 7.5 초 안에 괴물이 될 수도 있습니다 ...
— Fozzedout

7
sleep사용할 수 없다면 대답은 하드웨어에 매우 의존적 일 것입니다. 내 컴퓨터에서 75s가 걸리는 것은 아마도 내 컴퓨터에서 750s를 차지할 것입니다. : P
— Josh

3
timeapi.org/utc/now . 이것은 언어와 같은 수면과 같은 라이브러리를 사용하는 가장 좋은 대안처럼 보입니다. 이 모든 것은 몇 가지 http 요청입니다.
— Cruncher 2019

3
실수로 10 분이 걸렸습니다! : O
— Doorknob

답변:


53

1GHz로 오버 클럭 된 라즈베리 파이에서 약 75 초 소요

#!/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

다음과 같은 이유로 작동합니다.

42는 유일하게 알려진 값으로, 각각의 값 자체보다 작은 4 개의 양의 정수 a, b, c, d의 세트 수이며, 따라서 ab-cd, ac-bd 및 ad-bc는 각각 가치. 다른 가치가 있는지는 여전히 의문의 여지가 남아 있습니다

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


12
따라서이 방정식을 만족하는 새로운 숫자를 찾거나 42를 인쇄합니다.
— Assaf G.

1
마지막 줄이 없기 때문에 @FezVrasta. 도!
— gnibbler

2
와! 완벽한 수학 수수께끼와 오버 클럭킹 ... 하하하 +1!
— Tomas

1
그것은이 대답은 (upvoting되지 않음) (42)의 하드 캡 점수를 가지고 재미
— pwned

1
오버 락 된 라즈베리 파이 때문에 이것을 높이고 싶지만 현재 점수를 줄 수는 없습니다. 나는 우리가 동점을 가질 것이라는 나쁜 느낌을 가지고있다
— agweber

43

파이썬 2.7

질문에 대답하려면 질문을 알아야 하며 질문은 다음과 같습니다.

6에 9를 곱하면 무엇을 얻습니까? 수정을위한 TRiG에 감사합니다

따라서 Deep Thought 은 base 13 의 편리한 사용에 의존합니다 .

6 13 x 9 13 = 42 13

상수를 가져옵니다.

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

우리는 또한 우리의 지구를 정의하고, 글자 맞추기 타일 한 자루 , Arthur (약간 이상하지만 컴퓨터는 예측 가능), Trillian (우리의 합리적인 헤로인),

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)))

우리는 Zaphod ( 임의의 종류)를 소개 합니다 endOfTheUniverse.

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

그리고 Marvin the Paranoid Android 는 긍정적 인 태도로 파티를 막을 수 있습니다.

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

그리고 우리는 계산할 때까지이 4 개의 문자를 믹스를 통해 계속 실행 합니다 .

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)

완전한 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)

이것은 75 초 정도 어딘가에 끝나야하며, 확실히 80 초 정도 끝납니다. 때때로 Zaphods Infinite Improbability Drive 이전 .


1
대답은 훌륭하지만 2.7.2에서 실행하면 오류가 발생합니다. 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 죄송합니다. 실수로 잘못된 코드를 추가했습니다. 지금 해결했습니다.

4
굉장한, 그것은 작동합니다 :) 이제 우리는 질문을 계산하기 위해 더 큰 컴퓨터가 필요합니다!
— Fez Vrasta

8
"죄송 합니다만베이스 -13에는 농담을 쓰지 않습니다." -DNA
— MikeTheLiar

3
현재 42 표에 있습니다. 더 많은 투표를 원하십니까? 아니면이 질문에 대해 가장 멋진 점수를 원하십니까?

13

DOS 배치-삶, 우주 및 모든 것에 대한 답변

단순화를 위해 mynameiscoffey에게 감사합니다!

다른 이름으로 저장 answer.bat:

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

그런 다음 실행하고 75 초 동안 기다리십시오.

> answer
42

당신과 같은 깊은 생각은 그것은 나를 돌려 다른 생각을 갖고 40 P :
— 페즈 Vrasta

필자는 메모장 ++을 사용했으며 Windows 8 x64를 사용했습니다.
— Fez Vrasta


쿨, 어떻게 작동하는지 추측 할 수 있습니까?

2
왜 그냥 지저분한의 CRLF 문제를 방지하기 위해 그것을 한 줄을하지 @ ping 127.0.0.1 -n 76 >nul && @ echo %~z0않고 CRLF 한 쌍에 의존`&&`사용
— mynameiscoffey

10

배쉬 (OS X)

이것은 너무 많은 문제없이 다른 시스템으로 이식 될 수 있습니다. 대체 say당신은 텍스트를 음성으로 명령 행 유틸리티로 사용하고 무엇이든지. 이 -f옵션은 명명 된 파일에서 입력을받습니다.

운이 좋으면 올바른 숫자를 출력 할 수도 있습니다 :-)

내 시스템에서 실행하는 데 거의 정확히 1 분 15 초가 걸립니다 (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

이것은 힘든 일입니다. 우리는 실제로 질문을 알지 못하기 때문에 대답을 얻는 유일한 실행 가능한 방법은 전역 최적화 방법입니다. 이 경우 시뮬레이션 어닐링 방법을 선택했습니다.이 방법은 이전에 어려운 질문에 대한 훌륭한 답변을 제공했기 때문입니다.

이 코드가 수행하는 모든 것은 입력 자체가 생명 인 함수의 최적 값을 찾는 것입니다. 그리고 놀라운 것은 그것이 작동한다는 것입니다. 방금 Deep Thought을 검증 했습니까?

tic;

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

산출:

the_answer =

    42

Elapsed time is 74.892428 seconds.

5

C-1089 바이트

#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;
}

압축 :

#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

루비

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}"

내 컴퓨터의 출력 :

42
Took 123 seconds; seed was 3771996

이것은 RNG를 남용합니다. ;)


1
75 초 지속되는 방법은 무엇입니까?
— Pierre Arlaud

1
@Arlaud 반복 당 2 개의 난수를 생성하는 루프의 370 만 회 반복 실행! 기술적으로 당신이 슈퍼 컴퓨터를 가지고 있다면 더 빠를 수 있지만, 적당한 하드웨어의 경우 적어도 75 초가 걸리며, 지루하고 수면 또는 시간 방법을 사용하고 싶지 않습니다.
— Doorknob

업데이트 : ... 이제 Took 25 seconds; seed was 3771996평균 성능의 노트북에 인쇄 됩니다. 그래서 .. 거짓말 했어 : P
— 도어 손잡이

4

씨

#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
clock()어떤 값을 초과 할 때까지 루핑 하는 것은 no sleep()규칙 을 위반하는 것으로 보입니다. 기본적으로 CPU를 많이 사용하는 수면이기 때문입니다.
— nini

인기 대회.
— Pierre Arlaud

@ArlaudPierre 답변을 제출했을 때 코드 골프 였습니다 . 어쨌든, 이제 수정되었습니다.
— Oberon

4

JavaScript-방정식을 풀어서 "인생과 모든 것에 대한 해답 찾기"

이 방정식을 살펴 봅시다.

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

많은 솔루션이 있습니다,하지만 당신이 원하는 경우에 r가능한 크게 것으로하고 p, q그리고 r원주민으로 두 솔루션이 있습니다 :

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

을 사용 p <= q <= r하면 솔루션이 하나만 있으며 r항상42

방정식을 풀기위한 가장 효율적인 방법은 무엇입니까?

가능한 모든 값을 시도하여!

코드는 다음과 같습니다.

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;                
        }
    }
}

시간이 얼마나 걸립니까? 솔직히 말해서, 나는 그것을 끝까지 달릴 수 없었기 때문에 모른다.

그러나 작은 n값 (보다 크거나 같음 42)으로 시도 하면 올바른 결과를 얻을 수 있습니다. 과 같은 작은 값의 경우 n = 2000랩톱에서 거의 1 분이 걸립니다. 따라서 예제에 주어진 큰 값으로 며칠, 몇 주 또는 몇 년이 걸릴 것이라고 생각합니다 !!!

약 75 초 안에 솔루션 찾기 :

초기 질문의 한 가지 요구 사항은 실행하는 데 약 75 초가 소요되어야한다는 것입니다. 이를 달성하는 한 가지 방법은 시간이 지남에 따라 알고리즘의 복잡성을 자동으로 조정하는 것입니다.

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++;
        }
    }
}

작동 방식 (호기심) : 1 초 동안 얼마나 많은 반복이 수행되었는지 n확인한 다음 74를 곱하고 해당 값에 맞게 조정하십시오 . 예 : 500 회 반복하는 데 1 초가 걸리면 5000 회 반복하는 데 10 초가 걸립니다. 이미 "벤치마킹"에 1 초를 소비했기 때문에 75가 아니라 74가 곱해집니다.

수학의 출처와 학점


2

C #-151 자

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

이것은 스레드 수면과 어떻게 다릅니 까?
— valdetero

물론 스레드 수면과 동일하지 않습니다. 스레드 휴면은 지정된 시간 동안 메인 스레드를 비활성화합니다. 이 프로그램은 메인 스레드를 비활성화하지 않습니다. 경과 시간을 비교하기 위해 메인 스레드가 필요합니다. 지정된 시간 (75 초)이 경과하면 출력을 인쇄합니다.
— Merin Nakarmi

나는 <i> 기능적으로 </ i> 같은 것이 아니라 같은 전제를 따른다는 것을 알고있다. OP는 창의성을 발휘하고 언어가 75 초 동안 기다리지 않기를 원했습니다. 이것이 바로이 일입니다.
— valdetero

1
나 에게이 솔루션은 DOS 솔루션만큼 좋고 나쁩니다. DOS 솔루션은 핑 (ping)을 통해 프로그램을 바쁘게 유지하고 있으며, 경과 시간을 비교하여 바쁘게 유지합니다. 차이가 없습니다. 그것이 많은 공감대를 얻을 수 있다면 이것도 얻을 수 있습니다. 그건 그렇고, ping 명령은 내부적으로 '절전'을 수행합니다.
— microbian

2

C ++

다소 비효율적 인 방법을 통해 10 의 파티션 을 계산합니다 . 내 시스템에서 릴리스 빌드로 130 초를 실행했지만 충분히 빠른 PC를 가진 사람은 ~ 75 초 안에이를 실행할 수 있어야합니다 ...

#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

자바 스크립트

이것은 무언가를 경고하는 데 시간이 걸릴 것입니다 ...하지만 그것은 당신에게 보여줄 것이기 때문에 가치가 있습니다.

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();

데모


1
훨씬 75 초 이상.
— Fabinout

그러나 가치가 있습니다!
— rafaelcastrocouto

2

파이썬

때로는 계산이 끝날 때만 답이 명확하지만 종료 전에 그 내용을 볼 수 있습니다.

그리고 Deep Thinkt에 시드 된 일련의 입력은 거의 알려져 있지 않습니다.

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

금후:

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-답변은 75 초 후에 제공됩니다.


2

조립 (gcc로 연결)

충분히 느린 컴퓨터 (CPU 속도 ~ 2Hz)에서 다음을 실행하려면 약 75 초가 소요됩니다.

  .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

배쉬 및 리눅스 유틸리티 :

#!/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

Deep Thought은 계산 과정을 철저히 듣고 있습니다.


1

자바 (227 자)

비트 조작은 재미 있지 않다고 누가 말합니까? 아니면 그 자바가 혼란스럽지 않습니까?
우리는 75 초 동안 반복 한 다음 답을 얻습니다.

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);}}

언 골프

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

순수한 기본

다른 하드웨어가 다른 결과를 낳을 것이라는 사실에 따라, 이에 대한 정답은 없습니다. 경과 시간 기능을 사용하고 있으므로 계산을 언제 중지해야하는지 알고 있습니다.

기본적으로 빼면 42의 가장 큰 두 소수를 계산합니다.

기계가 빠를수록 프라임이 커집니다 :-)

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

미트 스페이스

당신의 servant^H^H^H^Hcomputer(사람, 개, 또는 숫자 타일을 집어들 수있는 어떤 것이 든 가능) 걷는 데 약 70/4 초가 걸리는 거리를 치십시오 . 거기에 큰 숫자 4와 큰 숫자를 넣으십시오 2. 당신의 배치 computer출력 점. 타이머를 시작하고 숫자 저장소로 걸어 가서 한 번에 하나의 숫자를 다시 가져옵니다.

나는 그들을 데리러 내려 놓기 위해 5 초를 할당했습니다.


0

다른 C # 예

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
당신은 "잠"을 사용하고 있습니다
— Fez Vrasta

죄송합니다, 나를 위해 sleep -10을 사용할 수있는대로 읽으십시오!
— 착륙선

0

루비

75 번 (0.56)의 전력 n을 더하는 프로그램. 가치n is 1

n=1어떤 형태로든 얻을 수있는 곳Time 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

루비 시차를 사용하여 대략적인 실행 시간을 확인했습니다. 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);
?>

오늘 밤에 가깝습니다. Ubuntu 10.04를 실행하는 이전 IBM NetVista P4 인 tecbrat.com 에서 실행하면 마지막 2 회 실행에서 69 초와 78 초가 표시되었습니다.


0

JavaScript (비트 난독 화) (136 바이트에는 나쁘지 않습니다!)

그것은 치타 한 측면에서 약간 보일 수 있지만, 75000ms 값은 42를 계산하는 데 사용되는 함수보다 먼저 계산 될 것이라는 점을 염두에두고 기능을 세 심하게 고려했습니다. 실제로 보면 매우 시적입니다. )

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


구문 오류가 발생합니다.Unexpected token >
— rafaelcastrocouto

x = x => f (x) 표기법을 허용하는 Firefox 26.0 에서이 작업을 수행하고 있습니다 ...이 버전을 실행하고 있습니까?
— WallyWest

나는 윈도우 7에서 크롬 31을 실행하고 있습니다 ...
— rafaelcastrocouto

1
@rafaelcastrocouto 아, 슬프게도 각 문장에서 두 기능을 정의하는 데 사용되는 뚱뚱한 화살표 표기법은 Firefox 22 이상에서만 작동합니다 ...
— WallyWest

나는 거의 울고있다 ... 당신의 솔루션은 정말 아름답습니다!
— rafaelcastrocouto

0

나는 이런 종류의 물건에 너무 좋지 않다. 나는 앱 개발자이지만 C에 대한 교육을받은 적이 없으며 서버에서 물건을 가져 와서 정보를 예쁘게 만드는 앱을 주로 만듭니다 ...

이것이 작동하는지 알 수 없으며 아이폰 앱에 있기 때문에 약간의 추가 코드가 있으며 42에 도달하면 진행률 표시 및 경고보기를 표시합니다.

#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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.