LINUX.ORG.RU

Доля Linux игр в вашей библиотеке Steam

 , ,


0

2

В связи с увеличением количества игр всевозможных жанров, интересно узнать соотношение количества игр, доступных под Linux к общему количеству игр.

У меня сейчас round(40.88%) -> 41%:

#!/usr/bin/env node

q = { "GAMES": 137, "STEAMOS + LINUX": 56  }
console.log(Math.round(
    q["STEAMOS + LINUX"] / q["GAMES"] * 100
))

  1. NaN386 (39%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. 100%156 (16%)

    *********************************************************************************************************************************

  3. меньше 10%72 (7%)

    ***********************************************************

  4. 90..99%61 (6%)

    **************************************************

  5. 40..49%50 (5%)

    *****************************************

  6. 30..39%49 (5%)

    ****************************************

  7. 80..89%46 (5%)

    **************************************

  8. 60..69%45 (5%)

    *************************************

  9. 50..59%38 (4%)

    *******************************

  10. 20..29%35 (4%)

    *****************************

  11. 70..79%35 (4%)

    *****************************

  12. 10..19%25 (3%)

    ********************

Всего голосов: 998

★★★★★

Проверено: beastie ()

Traceback (most recent call last):
  File "<stdin>", line 3, in <module>
ZeroDivisionError: float division by zero
te111011010 ()
Ответ на: комментарий от beastie

0/0 — это сколько?

Это «мимокрокодил» ;) Конечно можно и такой вариант добавить.

te111011010, Починил

KennyMinigun ★★★★★ ()
Последнее исправление: KennyMinigun (всего исправлений: 1)
Ответ на: комментарий от KennyMinigun

te111011010, Почини

Подожди, что ты починил? Может неправильно понял мой псто? Смысл у него был примерно такой же, как и у поста beastie.

te111011010 ()

почему не

#!/bin/sh

total=137
linux_and_steamos=56
echo "${linux_and_steamos}/${total}*100" | bc -l
?

зачем тащить эту хипстоту?

snoopcat ★★★★★ ()
Последнее исправление: snoopcat (всего исправлений: 1)
Ответ на: комментарий от snoopcat

кстати, давайте уж тогда нодосрач устроим.

annelin@nevermore ~ » time ./igor.sh 
40.87591240875912408700

real	0m0.002s
user	0m0.000s
sys	0m0.002s
annelin@nevermore ~ » time ./igor.js 
40.87591240875913

real	0m0.038s
user	0m0.034s
sys	0m0.005s
snoopcat ★★★★★ ()
Ответ на: комментарий от KennyMinigun
annelin@nevermore ~ » cat igor.sh 
#!/bin/bash

round()
{
echo $(printf %.$2f $(echo "scale=$2;(((10^$2)*$1)+0.5)/(10^$2)" | bc))
};


total=137
linux_and_steamos=56
round `echo "$linux_and_steamos/$total*100" | bc -l` 0


annelin@nevermore ~ » time ./igor.sh 
41

real	0m0.004s
user	0m0.002s
sys	0m0.002s

where is your god now? ☺

snoopcat ★★★★★ ()
Последнее исправление: snoopcat (всего исправлений: 1)
Ответ на: комментарий от snoopcat

ну и на всякий случай

function math.round(value, precision)
	local mult = 10^(precision or 0)
 	return math.floor(value * mult + 0.5) / mult
end

total=137
linux=56

print(math.round(linux/total*100, 0))
annelin@nevermore ~ » time lua igor.lua 
41

real	0m0.001s
user	0m0.000s
sys	0m0.001s
snoopcat ★★★★★ ()
Ответ на: комментарий от KennyMinigun

bc

Math.round мне запили :)

Easy:

echo 'scale=1;100*56/137' | bc -l
40.8
beastie ★★★★★ ()
Ответ на: комментарий от beastie

И, раз уж пошла такая пьянка. ;)

dc -e '1 k 100 56 * 137 / 0.5 + 0 k 1 / p' 
41
beastie ★★★★★ ()
Ответ на: ну и на всякий случай от snoopcat

Тогда нестареющая классика:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

void usage(const char *name, int rc) {
    fprintf(stderr, "%s [total] [steamos+linux]\n", name);
    exit(rc);
}

int main(int argc, char *argv[]) {
    if (argc < 3) {
        usage(argv[0], EXIT_FAILURE);
    }

    long all = atol(argv[1]);
    long steamos = atol(argv[2]);

    if (all != 0) {
        long part = (long)round((double)steamos / all * 100);
        printf("%ld\n", part);
    } else {
        puts("N/A");
    }

    return EXIT_SUCCESS;
}
$ gcc -std=c99 -Wall -Wextra -pedantic -O3 math.c -o c_math -lm
$ time ./c_math 137 56
41

real    0m0.002s
user    0m0.000s
sys     0m0.000s

KennyMinigun ★★★★★ ()
Ответ на: комментарий от beastie

ну и как же тут без однострочника на перле?

perl -e 'printf "%.0f\n", 56 / 137 * 100
41

Только вот случай "мимокрокодил" не отрабатывается :)

KennyMinigun ★★★★★ ()
Ответ на: комментарий от KennyMinigun

лол, чому у тебя на сишечке медленнее, чем у меня на луа?
алсо, я думал, мы тут за скриптовые языки разговариваем.

snoopcat ★★★★★ ()
Ответ на: комментарий от snoopcat

Нудк, Эдик было предлагал скриптовать на сишечке :)

лол, чому у тебя на сишечке медленнее, чем у меня на луа?

Не знаю, у самого баттхерт.

UPD Хотя, у меня аргументы парсит, а у тебя хардкод

KennyMinigun ★★★★★ ()
Последнее исправление: KennyMinigun (всего исправлений: 1)
Ответ на: комментарий от KennyMinigun

не убедил

function math.round(value, precision)
	local mult = 10^(precision or 0)
 	return math.floor(value * mult + 0.5) / mult
end

function usage()
	io.stderr:write("./test.lua <total> <steamos+linux>\n")
	os.exit()
end

-- argv --
if #arg < 2 then usage() end
-- main --
local all = tonumber(arg[1])
local steamos = tonumber(arg[2])
local result = 'N/A'

if all ~= 0 then result = math.round(steamos/all*100, 0) end
print(result)
annelin@nevermore ~ » time lua test.lua 137 56
41

real	0m0.001s
user	0m0.000s
sys	0m0.001s
snoopcat ★★★★★ ()
Ответ на: не убедил от snoopcat

Как насчёт:

time for i in {1..1001} ; do ./c_math 137 56 >/dev/null ; done
real    0m0.756s
user    0m0.068s
sys     0m0.188s

KennyMinigun ★★★★★ ()
Ответ на: комментарий от KennyMinigun

:(

annelin@nevermore ~ » time for i in {1..1001}; do lua test.lua 137 56 > /dev/null; done

real	0m0.967s
user	0m0.331s
sys	0m0.689s
snoopcat ★★★★★ ()
Ответ на: :( от snoopcat

Всё, справедливость восстановлена. Можно идти спать :)

KennyMinigun ★★★★★ ()
Ответ на: комментарий от KennyMinigun

ты так и не ответил на вопрос, нафига эту тормозную хипстоту принёс в ОП-потс

snoopcat ★★★★★ ()
Ответ на: комментарий от snoopcat

Заради NaN. Там изначально питон был, но для мимокрокодилов он ошибку выкидывал. На быструю руку починил

KennyMinigun ★★★★★ ()
Ответ на: комментарий от KennyMinigun

Мну было лень. ;) Но, лови: http://play.golang.org/p/plycPZe1bv

$ time ./games 
Ratio 41%

real    0m0.002s
user    0m0.000s
sys     0m0.000s

Ну и, для моего случая: ;)

$ time ./games -games 0 -steam 0
Ratio NaN%

real    0m0.001s
user    0m0.004s
sys     0m0.000s

beastie ★★★★★ ()
Последнее исправление: beastie (всего исправлений: 1)

1. Не пользуюсь стимом.
2. Не играю в игры.

Что мне выбирать?

Zhbert ★★★★★ ()

50% — одна игра из GoG, вторая в Steam, которую хочу заменить на DRM-Free.

Ещё есть HL2 под вайном, но она уже не в счёт, ибо вайн я снёс.

r3lgar ★★★★★ ()

100% ибо куплена только CS 1.6

kas501 ★★★ ()

35% Советую попробовать Sid Meier's Civilization® V и Cities: Skylines

neon1ks ★★ ()

У меня твой код выдает тот же результат. Он точно считает процент linux-игр?

backburner ()
Ответ на: комментарий от backburner

Ты тролль или просто не видишь, что в коде написано?

RevenantX ★★★★ ()

У меня только DOTA 2 из всех игр в steam

rezedent12 ☆☆☆ ()
Ответ на: комментарий от Amet13

Питоно-версия опросного скрипта насчитала 25% (48/194).

justAmoment ★★★★★ ()
Python 3.4.3 (default, Mar 25 2015, 17:13:50) 
[GCC 4.9.2 20150304 (prerelease)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> linux = 29
>>> all = 81
>>> linux/all
0.35802469135802467
>>> 
user_id_68054 ★★★★★ ()

Лень считать, но думаю «90..99%». win-only игорей по идее одна или две, купленных за копейки на распродаже в надежде что когда-нибудь их портанут.

MrClon ★★★★★ ()

11/16 = 0.6875

69%

Оффтопик-онли игры получены на халяву и ни разу не запускались, покупал только нативные.

Psych218 ★★★★★ ()
Последнее исправление: Psych218 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.