Câu trả lời cho cuộc sống, vũ trụ và mọi thứ [khép kín]


43

Giới thiệu : Suy nghĩ sâu đã tính toán Câu trả lời cho sự sống vũ trụ và mọi thứ trong khoảng thời gian 7,5 triệu năm, giải pháp là 42.

Viết chương trình bằng bất kỳ ngôn ngữ lập trình nào chỉ mất khoảng 75vài giây để tính toán, bắt đầu từ bất cứ điều gì bạn muốn và xuất số 42.

NB Số 42phải được tính bằng cách nào đó (số ngẫu nhiên, bất cứ điều gì bạn thích), không chỉ mã hóa cứng trong tập lệnh của bạn.

Theo đề xuất, bạn không thể sử dụng sleephoặc các chức năng tương đương. Hãy sáng tạo.


6
Điều này có thể phục vụ tốt hơn như một cuộc thi phổ biến để xem những cách mọi người có thể sáng tạo đưa ra câu trả lời thay vì các biến thể củasleep(75);print("%d\n",41+1);
Josh

30
Để tính mất khoảng 75 giây? Nhưng chip máy tính rất đa dạng ... Làm sao có thể như vậy - có thể mất 75 giây trên máy của tôi, nhưng máy tính tiếp theo có thể
đánh bại

7
Nếu không sleepcó sẵn, các câu trả lời sẽ phụ thuộc rất nhiều vào phần cứng Tôi tưởng tượng ... những gì mất 75 giây trên máy của bạn có thể sẽ mất 750 giây trên máy của tôi: P
Josh

3
timeapi.org/utc/now . Đây có vẻ như là sự thay thế tốt nhất cho việc sử dụng các thư viện giống như giấc ngủ của ngôn ngữ của bạn. Tất cả điều này chỉ là một vài yêu cầu http.
Cruncher

3
Tôi vô tình làm cho tôi mất 10 phút! : O
Doorknob

Câu trả lời:


53

Điều này mất khoảng 75 giây trên một quả mâm xôi pi được ép xung lên 1GHz

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

Nó hoạt động vì:

42 là giá trị duy nhất được biết là số tập hợp của bốn số nguyên dương khác nhau a, b, c, d, mỗi giá trị nhỏ hơn chính giá trị đó, sao cho ab-cd, ac-bd và ad-bc là mỗi bội số của giá trị. Liệu có những giá trị khác hay không vẫn là một câu hỏi mở

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


12
Vì vậy, bạn sẽ tìm thấy một số mới thỏa mãn phương trình này hoặc bạn sẽ in 42 :)
Assaf G.

1
@FezVrasta, vì dòng cuối cùng bị mất. doh!
gnibbler

2
Ồ Rebus toán học hoàn hảo và điều ép xung ... ha ha ha +1!
Tomas

1
nó buồn cười rằng câu trả lời này có một số điểm mũ cứng 42 (không upvoting)
pwned

1
Tôi thực sự muốn nâng cao điều này vì pi mâm xôi quá khổ, nhưng tôi không thể cho điểm hiện tại. Tôi có một cảm giác tồi tệ là chúng ta sẽ có một sự ràng buộc
agweber

43

Python 2.7

Để trả lời câu hỏi, người ta phải biết câu hỏi - và câu hỏi là:

Bạn nhận được gì khi nhân sáu với chín? Cảm ơn TRiG đã sửa

Vì vậy, Deep Think dựa vào việc sử dụng cơ sở 13 tiện dụng :

6 13 x 9 13 = 42 13

Chúng tôi nhập các hằng số của chúng tôi:

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

Chúng tôi cũng định nghĩa những thứ trên trái đất của chúng tôi, là một túi gạch vụn , Arthur (một thứ có thể dự đoán được mặc dù hơi kỳ quặc, máy tính loại), Trillian (nữ anh hùng hợp lý của chúng tôi),

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

Chúng tôi giới thiệu Zaphod - một loại ngẫu nhiên, người cuối cùng đã hết hơi khi chúng tôi ở gần endOfTheUniverse.

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

Marvin the Paranoid Android , người có thái độ tích cực có thể ngăn chặn bất kỳ bên nào:

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

Và chúng tôi tiếp tục chạy 4 ký tự này thông qua bản mix cho đến khi họ tính toán :

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)

Hoàn thành 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)

Điều này sẽ kết thúc ở đâu đó xung quanh mốc 75 giây, chắc chắn kết thúc 80 giây. Đôi khi sớm hơn để ổ đĩa khả năng vô hạn của Zaphods .


1
câu trả lời là tuyệt vời nhưng nếu tôi chạy nó vào ngày 2.7.2 thì nó sẽ báo lỗi 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 Xin lỗi, tôi vô tình thêm một số mã sai. Đã sửa nó ngay, nên hoạt động.

4
tuyệt vời, nó hoạt động :) bây giờ chúng ta cần một máy tính lớn hơn để tính toán câu hỏi!
Fez Vrasta

8
"Tôi có thể là một trường hợp xin lỗi, nhưng tôi không viết truyện cười ở cơ sở 13." - DNA
MikeTheLiar

3
Điều này hiện đang ngồi ở 42 phiếu. Tôi muốn có nhiều phiếu bầu hơn, hay tôi muốn điểm số tuyệt vời nhất có thể cho câu hỏi này?

13

DOS Batch - câu trả lời cho cuộc sống, Vũ trụ và mọi thứ

Cảm ơn mynameiscoffey vì sự đơn giản hóa của anh ấy!

Lưu dưới dạng answer.bat:

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

Sau đó chạy nó và đợi 75 giây:

> answer
42

Có vẻ như Deep
Think

Tôi đã sử dụng Notepad ++, tôi đã sử dụng Windows 8 x64
Fez Vrasta

Không có may mắn ngay cả với NotePad, phiên bản có dấu chấm than thay vào đó hoạt động
Fez Vrasta

Thật tuyệt, bạn có thể đoán nó hoạt động như thế nào không?

2
tại sao không làm cho nó thành một dòng để tránh sự cố CRLF lộn xộn @ ping 127.0.0.1 -n 76 >nul && @ echo %~z0, bằng cách sử dụng `&&` thay vì dựa vào một cặp CRLF
mynameiscoffey

10

Bash (OS X)

Điều này có thể được chuyển đến các hệ thống khác mà không gặp quá nhiều khó khăn. Thay thế saybằng bất cứ thứ gì bạn đang sử dụng như một tiện ích dòng lệnh chuyển văn bản thành giọng nói. Các -ftùy chọn có đầu vào từ một file có tên.

Với một chút may mắn, nó thậm chí có thể xuất ra số chính xác :-)

Việc này mất gần 1 phút 15 giây để chạy trên hệ thống của tôi (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

Đây là một trong những khó khăn. Vì chúng tôi không thực sự biết câu hỏi, phương pháp khả thi duy nhất để có câu trả lời là phương pháp tối ưu hóa toàn cầu. Trong trường hợp này, tôi đã chọn cho mô phỏng ủ phương pháp , vì phương pháp này đã cho tôi câu trả lời hay cho những câu hỏi khó trước đây.

Tất cả các mã này đang làm là tìm kiếm giá trị tối ưu của một hàm mà đầu vào là chính cuộc sống. Và điều tuyệt vời là nó hoạt động. Vì vậy, tôi đã xác nhận Deep Think?

tic;

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

Đầu ra:

the_answer =

    42

Elapsed time is 74.892428 seconds.

5

C - 1089 byte

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

Nén:

#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

Hồng ngọc

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

Đầu ra trên máy của tôi:

42
Took 123 seconds; seed was 3771996

Điều này lạm dụng RNG. ;)


1
Làm thế nào để bạn đảm bảo nó kéo dài 75 giây?
Pierre Arlaud

1
@Arlaud Nó chạy qua 3,7 triệu lần lặp của một vòng lặp whIch tạo ra 2 số ngẫu nhiên trên mỗi lần lặp! Về mặt kỹ thuật, nếu bạn có một số siêu máy tính thì nó có thể nhanh hơn, nhưng đối với bất kỳ phần cứng hợp lý nào thì sẽ mất ít nhất 75 giây và tôi không muốn nhàm chán và sử dụng phương pháp ngủ hoặc thời gian.
Doorknob

Cập nhật: ... bây giờ nó in Took 25 seconds; seed was 3771996trên máy tính xách tay hiệu suất trung bình của tôi. Vì vậy, uhh ... tôi đã nói dối. : 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
trong khi lặp đi lặp lại cho đến khi clock()vượt quá một số giá trị dường như vi phạm no sleep()quy tắc, vì về cơ bản đó là một giấc ngủ thâm dụng cpu
mniip

cuộc thi phổ biến.
Pierre Arlaud

@ArlaudPierre Đó là mã golf khi tôi gửi câu trả lời. Dù sao, nó đã được sửa bây giờ.
Oberon

4

JavaScript - Tìm "câu trả lời cho cuộc sống và mọi thứ" bằng cách giải phương trình

Chúng ta hãy xem phương trình này:

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

Có nhiều giải pháp, nhưng nếu bạn muốn rtrở nên lớn nhất có thể p, qrđể trở thành người tự nhiên, chỉ có hai giải pháp:

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

với p <= q <= r, chỉ có một giải pháp và rluôn luôn bằng42

Cách hiệu quả nhất (trong) để giải phương trình là gì?

Bằng cách thử tất cả các giá trị sở hữu!

Đây là mã:

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

Sẽ mất bao nhiêu thời gian? Thành thật mà nói, tôi không biết vì tôi đã không thể chạy nó đến cùng.

Tuy nhiên, bạn có thể thử với các ngiá trị nhỏ (nó phải lớn hơn hoặc bằng 42) và bạn sẽ nhận được kết quả chính xác. Đối với các giá trị nhỏ như n = 2000, phải mất gần một phút trên máy tính xách tay của tôi. Vì vậy, tôi đoán với các giá trị lớn được đưa ra trong ví dụ này sẽ mất vài ngày, vài tuần hoặc thậm chí nhiều năm !!!

Tìm giải pháp trong khoảng 75 giây:

Một yêu cầu từ câu hỏi ban đầu là phải mất khoảng 75 giây để thực thi. Một cách để đạt được điều này là tự động điều chỉnh độ phức tạp của thuật toán theo thời gian:

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

Cách thức hoạt động (đối với người tò mò): nó kiểm tra số lần lặp lại đã được thực hiện trong một giây, sau đó nhân số này với 74 và điều chỉnh nđể khớp với giá trị đó. ví dụ: nếu mất một giây để thực hiện 500 lần lặp, sẽ mất 10 giây để thực hiện 5000 lần lặp. Lưu ý rằng nó nhân với 74 chứ không phải 75 vì chúng tôi đã dành một giây cho "điểm chuẩn".

nguồn và tín dụng cho toán học


2

C # - 151 ký tự

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

Làm thế nào là điều này không tương đương với giấc ngủ chủ đề?
valdetero

Tất nhiên nó không tương đương với chủ đề ngủ. Chủ đề ngủ làm cho chủ đề chính không hoạt động trong khoảng thời gian được chỉ định. Chương trình này không làm cho chủ đề chính không hoạt động. Nó liên quan đến chủ đề chính để so sánh thời gian trôi qua. Và khi khoảng thời gian quy định (75 giây) đó trôi qua, nó sẽ in kết quả đầu ra.
Merin Nakarmi

Tôi biết <i> về mặt chức năng </ i> nó không giống nhau, nhưng theo cùng một tiền đề. OP muốn nó sáng tạo và không có ngôn ngữ chờ 75 giây - đó là những gì nó đang làm.
valdetero

1
Đối với tôi giải pháp này tốt / xấu như giải pháp cho DOS. Giải pháp DOS đang khiến chương trình bận rộn bằng cách ping, và giải pháp này đang khiến bản thân bận rộn bằng cách so sánh thời gian trôi qua. Tôi không thấy bất kỳ sự khác biệt. Nếu điều đó có thể nhận được nhiều upvote vì vậy điều này cũng nên nhận được. Nhân tiện, lệnh ping thực hiện một 'giấc ngủ' bên trong.
microbian

2

C ++

Tính toán các phân vùng của 10 thông qua một phương pháp khá kém hiệu quả. Mất 130 giây để chạy trong bản dựng Phát hành trên hệ thống của tôi nhưng ai đó có PC đủ nhanh sẽ có thể chạy nó trong ~ 75 giây ...

#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

Điều này sẽ mất một thời gian để cảnh báo điều gì đó ... nhưng nó đáng giá vì nó sẽ cho bạn thấy Câu trả lời cho cuộc sống vũ trụ và mọi thứ!

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

Bản giới thiệu


1
Nhiều hơn 75 giây ...
Fabinout

Nhưng nó đáng giá!
rafaelcastrocouto

2

Con trăn

Đôi khi một câu trả lời chỉ rõ ràng ở phần cuối của một phép tính, nhưng các khía cạnh của nó được hiển thị trước khi chấm dứt.

Và ít ai biết đó là chuỗi các yếu tố đầu vào Deep Think đã được gieo mầm:

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

Vì thế:

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 - câu trả lời được cung cấp sau 75 giây.


2

Hội (liên kết bởi gcc)

Trên máy tính đủ chậm (tốc độ CPU ~ 2Hz), việc này sẽ mất khoảng 75 giây để chạy:

  .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

Đồ dùng của Bash và Linux:

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

Suy nghĩ sâu sắc là lắng nghe cẩn thận tất cả các cách thông qua tính toán.


1

Java (227 ký tự)

Ai nói rằng thao tác bitwise không vui vẻ? Hoặc java không thể gây nhầm lẫn?
Chúng tôi lặp lại trong 75 giây và sau đó bùng nổ câu trả lời.

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

Bị đánh cắp

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

Để phù hợp với thực tế là phần cứng khác nhau sẽ tạo ra kết quả khác nhau, không có câu trả lời cố định cho việc này. Tôi đang sử dụng một hàm thời gian trôi qua để tôi biết khi nào nên ngừng tính toán.

Về cơ bản, nó sẽ tính hai số nguyên tố lớn nhất khi bị trừ là 42

Máy của bạn càng nhanh, số nguyên tố sẽ càng lớn :-)

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

Không gian thịt

Giảm khoảng cách mất khoảng 70/4 giây cho bạn servant^H^H^H^Hcomputer(có thể là người, chó hoặc bất cứ thứ gì có thể nhặt được các ô số) để đi bộ. Đặt một chữ số lớn 4và một chữ số lớn 2ở đó. Đặt của bạncomputer đến điểm đầu ra. Bắt đầu bộ đếm thời gian, cho nó đi bộ đến kho số và mang về một số mỗi lần.

Tôi phân bổ 5 giây để nhặt chúng lên và đặt chúng xuống.


0

Một ví dụ C # khá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
bạn đang sử dụng "giấc ngủ"
Fez Vrasta

Rất tiếc, đọc nó như có thể sử dụng giấc ngủ -10 cho tôi!
tàu đổ bộ

0

Hồng ngọc

Một chương trình để thêm (0,56) power n trong 75 lần. Giá trị củan is 1

Trong trường hợp n=1cần được lấy từ bất kỳ hình thứcTime 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

Sử dụng chênh lệch thời gian của ruby ​​Tôi đã xác minh thời gian thực hiện xấp xỉ 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);
?>

Điều này gần như tôi sẽ nhận được tối nay. Chạy nó tại tecbrat.com , một IBM NetVista P4 cũ chạy Ubuntu 10.04, hiển thị 69 giây và 78 giây trong 2 lần chạy cuối cùng của tôi.


0

JavaScript (obfuscation Bitwise) (không tệ với 136 byte!)

Nó có thể được coi là một chút về mặt gian lận, nhưng các chức năng đã được suy nghĩ tỉ mỉ, lưu ý rằng giá trị 75000ms sẽ được tính trước các hàm được sử dụng để tính toán 42. Thật sự rất thi vị khi bạn nhìn vào nó, thực sự: )

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


Tôi đang gặp lỗi cú pháp ...Unexpected token >
rafaelcastrocouto

Tôi có cái này hoạt động trên Firefox 26.0, nó chấp nhận ký hiệu x = x => f (x) ... Bạn đang chạy phiên bản này trên phiên bản nào?
WallyWest

Tôi đang chạy chrome 31 trên windows 7 ...
rafaelcastrocouto

1
@rafaelcastrocouto Ah, ký hiệu mũi tên béo đáng buồn được sử dụng để xác định hai chức năng trong mỗi câu lệnh chỉ hoạt động cho Firefox 22 trở lên ...
WallyWest

Tôi gần như đang khóc ... giải pháp của bạn thực sự rất đẹp!
rafaelcastrocouto

0

Tôi không quá tốt với loại công cụ này. Tôi là một nhà phát triển ứng dụng nhưng tôi chưa bao giờ được đào tạo về C và tôi chủ yếu tạo ra các ứng dụng lấy nội dung từ máy chủ và làm cho thông tin trông khá ...

Tôi không biết điều này có hoạt động không và có một chút mã bổ sung trong đó bởi vì đó là trong ứng dụng iphone và tôi hiển thị một hud tiến trình và chế độ xem cảnh báo khi đạt đến 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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.