[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 01/09 01:44 / Filesize : 338 KB / Number-of Response : 1032
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

プログラミングのお題スレ Part18



1 名前:デフォルトの名無しさん mailto:sage [2020/07/14(火) 13:53:46 ID:jW5p6F/e.net]
プログラミングのお題スレです。

【出題と回答例】
1 名前:デフォルトの名無しさん
  お題:お題本文

2 名前:デフォルトの名無しさん
  >>1 使用言語
  回答本文
  結果がある場合はそれも

【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
codepad.org/
compileonline.com/
rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
melpon.org/wandbox
https://paiza.io/

宿題は宿題スレがあるのでそちらへ。

※前スレ
プログラミングのお題スレ Part17
https://mevius.5ch.net/test/read.cgi/tech/1584031367/

936 名前:デフォルトの名無しさん [2020/11/06(金) 03:01:56.79 ID:2mWV4tVe.net]
>>902
Java
https://paiza.io/projects/zGMV5xqRPjP1fxjo1Zu1Nw

937 名前:253 mailto:sage [2020/11/06(金) 13:23:23.40 ID:1EHNC/LO.net]
>>902 Perl5

use feature qw{current_sub say};
use Data::Dump 'dump';
@a = sub{
 my $l = pop;
 @_ ? ( map{
  sub{
   map{
    sub{
     sub{
      push @{$_[$_]}, $l;
      [@_]
     }->(map{[@$_]} @_);
    }->(@_)
   } 0..@_
  }->(@$_)
 } __SUB__->(@_) ) : [[$l]];
}->(1..8);
say dump @a;
say scalar @a;

実行結果
~ $ perl 18_892.pl
(
[[1 .. 8]],
[[1 .. 7], [8]],
… 中略
[[1], [2], [3], [4], [5], [6], [7, 8]],
[[1], [2], [3], [4], [5], [6], [7], [8]],
)
4140

938 名前:デフォルトの名無しさん mailto:sage [2020/11/06(金) 13:24:39.43 ID:DUBJiW5Z.net]
>>914
haskell
素直に内包表記使ったVer.
https://ideone.com/gA63Fi

939 名前:デフォルトの名無しさん [2020/11/07(土) 15:16:17.29 ID:dGj5mxP2.net]
sed 's/□/◇/g'

あ、いや、なんでもないです。忘れてください。

940 名前:デフォルトの名無しさん mailto:sage [2020/11/07(土) 15:50:17.56 ID:0+q2MsjY.net]
>>914 bat
@echo off &setlocal enabledelayedexpansion
if "%~1"=="" set "this=%~0" &"%~0" "□"
set /a n=0, Hmax=0
:GET_ARG
set "arg%n%=%~1"
set "arg%n%=!arg%n%:_=0 !"
set "arg%n%=!arg%n%:□=1 !"
shift
if not "%~1"=="" set /a n+=1 &goto :GET_ARG
for /L %%i in (0,1,%n%) do ( set h=0
for %%b in (!arg%%i!) do set /a a[%%i;!h!]=%%b, h+=1
if !h! GTR !Hmax! set /a Hmax=h
)
set /a t=n+Hmax, Hmax-=1
for /L %%a in (0,1,%t%) do for /L %%b in (0,1,%t%) do set R[%%a;%%b]=0
for /L %%a in (0,1,%n%) do for /L %%b in (0,1,%Hmax%) do (
set /a A=%%a+%%b, B=a+1, C=n+%%b-%%a, D=c+1
set /a "R[!A!;!C!]|=a[%%a;%%b], R[!A!;!D!]|=a[%%a;%%b], R[!B!;!C!]|=a[%%a;%%b], R[!B!;!D!]|=a[%%a;%%b]"
REM orをxorに替えればアウトライン表示
)
:: for /L %%A in (0,1,%t%) do (for /L %%B in (0,1,%t%) do set "P%%A=!P%%A!!R[%%A;%%B]!") &echo !P%%A!
for /L %%A in (0,1,%t%) do (
for /L %%B in (0,1,%t%) do (
set /a "M=%%A+%%B, M%%=2"
if "!R[%%A;%%B]!"=="0" (set "S%%A=!S%%A! ") else if "!M!"=="0" (set "S%%A=!S%%A!/") else set "S%%A=!S%%A!\"
)
echo=!S%%A!
)
endlocal
if not "%~0"=="_□□□" "%this%" "___□" "□□_□" "_□□□"
pause &exit /b

941 名前:デフォルトの名無しさん mailto:sage [2020/11/07(土) 19:47:28.12 ID:/E6xY+R5.net]
バッチでやるとかいい根性してる

942 名前:デフォルトの名無しさん [2020/11/07(土) 21:06:37.63 ID:anINQjB0.net]
>>914 Common Lisp
https://ideone.com/CMyiD0

943 名前:デフォルトの名無しさん mailto:sage [2020/11/07(土) 22:21:52.44 ID:alCltY04.net]
>>918
scale(1.41421356)でしょ

944 名前:デフォルトの名無しさん mailto:sage [2020/11/07(土) 23:04:28.88 ID:zLEnd997.net]
>>902
ビット操作で直接作れた
https://paiza.io/projects/JwD_YC7dX2RRZz8G9ydnaA



945 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 00:05:04.78 ID:DLA7KrcO.net]
>>924
バッチファイル兄貴いいぞ
もっとやれ

946 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 00:15:55.29 ID:ct8WHwWl.net]
バッチよくやってるな
batにトランスパイルできるもっといい感じの構文の言語とかないの

947 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 02:24:23.73 ID:vLTv8mzL.net]
バッチで>>902やる猛者はいないのか?
QZならできそうだがだんまりか?

948 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 02:34:25.46 ID:HKu5GaPi.net]
>>928
このコードZen2までのAMDのCPUだと多分とんでもなく遅くなる
ここで使ってるpdep命令がintelのやZen3と比べて100倍以上遅いから

949 名前: mailto:sage [2020/11/08(日) 03:02:51.65 ID:H3a4zXqH.net]
>>931
私は C しか書けません

950 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 03:56:26.07 ID:YnyAcD/m.net]
>>930
こんなのならあった
https://github.com/imachug/BatchBuilder

moduleサポート:
export say_hello
echo Hello, %1!
end export
でエクスポート
import say_hello Takashi
でインポート(というかecho Hello, Takashi!に置き換わる)

値返却 (return) サポート:
export ask q
set /p result=%q%?
return %result%
end export

export delete_dir
import -> agree ask "Delete %1"
if "%agree%" == "yes" (
rmdir /S /Q %1
)
end export

globalキーワード:
module内の変数はデフォでlocal。
global変数にしたいときはglobalキーワードを使う。
global my_var=hogehoge

951 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 03:57:27.82 ID:YnyAcD/m.net]
>>934 の続き

再帰サポートのための2つのディレクティブ:
@safe_recursion
@follow_local

クラスとオブジェクト:
クラス作成
class ClassTest
export say_hello
echo Hello, %1!
end export
export say_bye
echo Bye, %1!
end export
end class

オブジェクト生成
new -> my_class ClassTest

メソッド呼び出し
import %my_class%.say_hello Takashi
import %my_class%.say_bye Takashi

他、クラスフィールドやマジックメソッドなど

952 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 04:20:05.05 ID:YnyAcD/m.net]
>>930
もうひとつ。
https://github.com/kerrgavin/Transpiler-DSL-to-Windows-Batch-Script

>>934 がbatの拡張といったおもむきなのに対して、こちらは専用DSLからのトランスパイラ。Python製。

二値の平均:
avg(arg1, arg2, average)
fun avg {
num a = larg1 + larg2
num a = a/2
"echo" a
}
以下にトランスパイルされる
@echo off
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
call :avg %1,%2,%average%
@EXIT /B 0
:avg
set /a a=%~1 + %~2
set /a a=%a% / 2
echo %a%
EXIT /B 0

0から9999まで表示:
for (num i = 0;i < 10000;i+1){
"echo" i
}
トランスパイル結果略

953 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 05:03:48.08 ID:YnyAcD/m.net]
>>930
シェルスクリプトからの変換系:
https://github.com/daniel-sc/bash-shell-to-bat-converter
https://github.com/sagiegurari/shell2batch

あと専用言語からのトランスパイル系でもうひとつ凄いのがあった。
https://github.com/batsh-dev-team/Batsh
タイプ的には >>936 と同じような感じなんだけどbatにもシェルスクリプトにもコンパイルできる。
こっちは凄いねスター4,000超えてるわ。
なんでこれが最初に見つからんのや…
プレイグラウンド( https://batsh.org/ )もあってサンプルロード・コンパイルもできるから試してみて。
文法はオーソドックスなC系ですね。

954 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 05:16:53.07 ID:YnyAcD/m.net]
>>937
moongiftに紹介記事があった。
https://www.moongift.jp/2019/08/batsh-bashbatchのスクリプトを生成するプログラミング言語/
…そしてアドレスバー見たら既にお気に入りに登録されていた…



955 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 08:18:54.23 ID:ct8WHwWl.net]
>>937
これきれいだな

956 名前:デフォルトの名無しさん mailto:sage [2020/11/09(月) 23:19:00.95 ID:biYC5NlX.net]
もうすぐポッキーの日
[お題] 人口合計でオール1

URLのページに都道府県別の人口が載っている。
 今回使用するのは、2019/10のデータ
 https://ideone.com/R4PCiQ

 同じ県は一回のみで、異なる県を何県でも選んでよい。
 (つまり選び方は全部で 2^47 種類)
 人口合計が"1"のみの数字となる選び方は何種類あるか?
 (実質、1111万1111人, 1億1111万1111人になる選び方)

※一発正解問題、実行時間3秒程度。
 同ページの他の年月人口でも計算できる程度のクオリティでok
※ちなみに 2015/10データだと916(40+876)種類だった。

957 名前:デフォルトの名無しさん mailto:sage [2020/11/09(月) 23:52:24.94 ID:XExSNiE1.net]
11111111 は43?
111111111はオンラインコンパイラでタイムアウトorz

958 名前:デフォルトの名無しさん mailto:sage [2020/11/10(火) 00:38:20.57 ID:duQVrAg3.net]
面白そうなお題

959 名前:デフォルトの名無しさん mailto:sage [2020/11/10(火) 00:38:46.30 ID:qJS2/p90.net]
111111111 は650かな?

960 名前:デフォルトの名無しさん mailto:sage [2020/11/10(火) 00:45:23.62 ID:qJS2/p90.net]
とりあえず
Haskell

spp19 = (小さいもの順に並べた元データ)

findSum :: Int -> [Int] -> Int
findSum x ys = case ys of
[] -> 0
( z : zs ) | z > x -> 0
( z : zs ) | z == x -> 1
( z : zs ) | otherwise ->
( findSum x zs )
+ ( findSum ( x - z ) zs )

main = do
print $ findSum 15105031 spp19
print $ findSum 11111111 spp19

----
650
43

961 名前:デフォルトの名無しさん mailto:sage [2020/11/10(火) 02:25:54.45 ID:903MPdZb.net]
batコーイ!!

962 名前:デフォルトの名無しさん mailto:sage [2020/11/10(火) 02:49:15.00 ID:VuEsWlWs.net]
>>940
https://ideone.com/8nuT5d
力任せなコードだけどどうにか時間内に終わった

963 名前:デフォルトの名無しさん [2020/11/10(火) 13:44:24.83 ID:3xGJBleZ.net]
典型的なdp問題じゃねえの

964 名前:929 mailto:sage [2020/11/10(火) 17:29:30.75 ID:q5cN/btj.net]
>>940

・想定解はDPの数え上げ
 さすがに1.1億×47は苦しいので、
 1.1億に関しては、(全人口 - 1.1億)で計算する。
 そうすれば、1600万×47の計算量で済む。
 
 https://ideone.com/R4PCiQ
  下にpython(numpy)で想定解追加



965 名前:253 mailto:sage [2020/11/11(水) 00:47:47.87 ID:vox+S3u3.net]
(´・ω・`)

966 名前:デフォルトの名無しさん mailto:sage [2020/11/11(水) 18:19:57.16 ID:NMl7/e2v.net]
暇つぶしに>>944がどれくらい再帰呼び出し読んでるか数えてもらった

findSum' x ys = let ( z : zs ) = ys in case ys of
[ ] -> 0
_ | z >= x -> 0
otherwise -> ( findSum' x zs ) + ( findSum' ( x - z ) zs ) + 2
----
2021619696
20億回ちょい
dpだと15,105,031×47=709,936,457で7億回ちょいだから35%ほどになるのか
勉強になった

967 名前:デフォルトの名無しさん [2020/11/12(木) 15:39:00.87 ID:VX9X1ew1.net]
お題1
1〜nまでの偶数をランダムに出力してください

お題2
[開始の数] [増分] [終了の数]を入力として受け取りランダムに出力してください


入力: 1 2 10
出力:
1
1
3
9
1
7
5

968 名前:デフォルトの名無しさん mailto:sage [2020/11/12(木) 15:58:04.88 ID:uK53dAw4.net]
>>951 を読んで、やっぱり日本語は非論理的な言語だな、と思った。

969 名前:デフォルトの名無しさん [2020/11/12(木) 16:04:34.29 ID:VX9X1ew1.net]
書き手の問題だと思うよ

970 名前:デフォルトの名無しさん mailto:sage [2020/11/12(木) 18:42:17.55 ID:HU5jtk1k.net]
オレは深まりゆく秋を感じた

971 名前:デフォルトの名無しさん [2020/11/12(木) 19:26:25.71 ID:VX9X1ew1.net]
ふーけゆくー秋の夜ー

972 名前:デフォルトの名無しさん mailto:sage [2020/11/12(木) 19:34:08.43 ID:nzp5rNOe.net]
>>951 Ruby

p rand(2..$_.to_i) & -2 # => 32 while gets

-*- input -*-
2
10
100

-*- output -*-
2
6
78

p eval$_.gsub(/\s+/,'%s')%%w[.step(*[ , ].rotate).to_a.sample]while gets

-*- input -*-
1 2 10
1 2 10
10 5 99


-*- output -*-
7
1
85

973 名前:デフォルトの名無しさん mailto:sage [2020/11/12(木) 23:53:28.13 ID:HU5jtk1k.net]
そゆいみか
入力パースするとこは略して

Haskell

import System.Random
import Control.Monad

randomABC a b c = let
r = [ a, a+b .. c ]
in ( r !! ) <$> ( randomRIO ( 0, length r - 1 ) :: IO Int )

main = do
print =<< ( replicateM 20 $ randomABC 1 2 10 )
print =<< ( replicateM 20 $ randomABC 5 7 40 )
----
[1,1,9,7,9,7,7,9,7,5,7,7,7,3,7,1,5,9,5,7]
[33,26,26,26,12,19,40,40,12,33,19,26,19,26,26,33,19,5,5,33]

974 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 20:43:02.05 ID:3cTZftC0.net]
>>951 bat
@echo off &setlocal
set /a n=8 &REM 出力個数
echo -3 9
for /L %%i in (1,1,%n%) do call :RAND_A2B -3 9
echo=&echo 3 -5
for /L %%i in (1,1,%n%) do call :RAND_A2B 3 -5
echo=&echo 4 4
for /L %%i in (1,1,%n%) do call :RAND_A2B 4 4
echo=&echo -5 2 2
for /L %%i in (1,1,%n%) do call :RAND_SiE -5 2 2
echo=&echo 2 -3 -12
for /L %%i in (1,1,%n%) do call :RAND_SiE 2 -3 -12
echo=&echo 2 3 -4
for /L %%i in (1,1,%n%) do call :RAND_SiE 2 3 -4
pause &exit /b
:: 1〜n間の偶数をrandom出力 => a〜b間の偶数をrandom出力
:RAND_A2B
set



975 名前:local
set /a "f=%1&1"
if %1 EQU %2 ( if %f% EQU 0 echo %1) &exit /b
if %1 LSS %2 set /a a=%1+1, b=%2
if %1 GTR %2 set /a a=%2+1, b=%1
set /a "c=b-a+1, r=((%random%<<15)+%random%)%%c+a, r&=~1"
echo %r%&exit /b
:: [開始の数] [増分] [終了の数] を引数として条件を満たす値をrandom出力
:RAND_SiE
setlocal
if %2 NEQ 0 ( set /a "a=(%3-%1)/%2" ) else set /a a=0
if %a% LSS 0 set /a a=0
set /a "r=%random%%%(a+1)*%2+%1"
echo %r%&exit /b
[]
[ここ壊れてます]

976 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 22:58:48.40 ID:ghr6tNw2.net]
オンラインでbat動かせるサイトない?
>>958試して見たいんやけど

977 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 23:20:18.52 ID:a1Z/nYk3.net]
bat兄貴天才やな

978 名前:デフォルトの名無しさん mailto:sage [2020/11/14(土) 00:46:02.44 ID:WHpB6hAc.net]
>>959
それをお題にするのはありかも
947を読んで同じ動きをするプログラムを書け、とかね

979 名前:デフォルトの名無しさん mailto:sage [2020/11/14(土) 06:23:08.91 ID:rQXll7XK.net]
過疎るのもわかるわ

980 名前:デフォルトの名無しさん [2020/11/15(日) 04:26:34.92 ID:UMNa3GdF.net]
>>951
Java
https://paiza.io/projects/IUNanoZeum1nhkVUBUqXZA

981 名前:デフォルトの名無しさん [2020/11/15(日) 18:33:50.31 ID:UMNa3GdF.net]
お題
天気のデータを読み取って翌日の天気は前日と同じと予測しそれが当たる確率を求めてください

入力: 曇,晴,曇,曇,晴,曇,曇,雨,雨,雨,曇,曇,晴,曇,雨,曇,雨,曇,曇,曇,晴,曇,雨,晴,晴,晴,晴,曇,晴,曇,晴

982 名前:デフォルトの名無しさん mailto:sage [2020/11/15(日) 18:40:06.62 ID:KOddDUPF.net]
>>964 Ruby

gets.split(?,).each_cons(2).tap{|a| p 1.0 * a.count{|b| !b.uniq[1]}/ a.size}

# => 0.3333333333333333

983 名前:デフォルトの名無しさん [2020/11/15(日) 18:41:22.95 ID:UMNa3GdF.net]
はやいな

984 名前:デフォルトの名無しさん mailto:sage [2020/11/15(日) 20:20:51.56 ID:8j4ATkh0.net]
>>964 JavaScript
let hits = 0
const input = '曇,晴,曇,曇,晴,曇,曇,雨,雨,雨,曇,曇,晴,曇,雨,曇,雨,曇,曇,曇,晴,曇,雨,晴,晴,晴,晴,曇,晴,曇,晴'.split `,`
input.reduce((acc, v) => (hits += acc == v ? 1 : 0, v))
console.log(hits / (input.length - 1))
//=> 0.3333333333333333



985 名前:デフォルトの名無しさん mailto:sage [2020/11/15(日) 20:22:58.52 ID:KOddDUPF.net]
>>967
.split(`,`) では

986 名前:デフォルトの名無しさん mailto:sage [2020/11/15(日) 20:23:55.05 ID:KOddDUPF.net]
すまん。バッククウォートだった。

987 名前:デフォルトの名無しさん mailto:sage [2020/11/16(月) 00:51:51.08 ID:lyH8UsEw.net]
>>958
@echo off &setlocal enabledelayedexpansion
for /f "delims=:" %%A in ('findstr /en ARGS "%~0"') do set /a L=%%A, n=12 &REM nは出力個数
for /f "usebackq skip=%L% delims=" %%A in ("%~0") do set "i="&(for %%B in (%%A) do set /a i+=1)&echo %%A&set "S="&(for /L %%D in (1,1,%n%) do call :RAND!i! %%A&(if defined r set "S=!S! !r!" &set "r="))&echo=!S!&echo=
set /p<nul=終了&pause >nul &exit /b

:: a〜b間の偶数をrandom出力
:RAND2
setlocal &REM VAR= a b c r f
if %1 NEQ %2 ((if %1 LSS %2 (set /a a=%1+1, b=%2) else set /a a=%2+1, b=%1) &set /a "c=b-a+1, r=((%random%<<15)+%random%)%%c+a, r&=~1") else set /a "f=%1&1" &if !f! EQU 0 set r=%1
endlocal &set "r=%r%" &exit /b

:: [開始の数] [増分] [終了の数] を引数として条件を満たす値をrandom出力
:RAND3
setlocal &REM VAR= a r
if %2 NEQ 0 set /a "a=(%3-%1)/%2" &if !a! LSS 0 set "a=" &REM [ else set "a="] 省略:上位環境でaが使用されている場合には必要
set /a "r=((%random%<<15)+%random%)%%(a+1)*%2+%1" &REM set /aでは存在しない変数は0として扱われる
endlocal &set "r=%r%" &exit /b
:: ARGS
-3 9
3 -5
4 4
5 5
1 0 2
-5 2 2
2 -3 -12
2 3 -4
-256 040 0x100
0400 ~0x1F ~0xff

988 名前:デフォルトの名無しさん mailto:sage [2020/11/16(月) 03:31:51.13 ID:apQPm4KR.net]
>>965
haskell

import Data.List

str = "曇,晴,曇,曇,晴,曇,曇,雨,雨,雨,曇,曇,晴,曇,雨,曇,雨,曇,曇,曇,晴,曇,雨,晴,晴,晴,晴,曇,晴,曇,晴"

accuracy x = let
pairs = id
. map ( take 2 . reverse ) -- [ "BA", "CB", "DC",..]
. drop 2 -- [ "AB", "ABC",..]
. inits -- [ "", "A", "AB",..]
. filter ( /= ',' ) -- "ABCD.."
$ x
successes = filter ( \x -> head x == last x ) pairs
nP = genericLength pairs
nS = genericLength successes
in nS / nP

main = print $ accuracy str

989 名前:デフォルトの名無しさん mailto:sage [2020/11/16(月) 03:32:04.47 ID:lyH8UsEw.net]
>>964 bat
@echo off &setlocal enabledelayedexpansion
set /a i=-1, match=0
for %%A in (曇,晴,曇,曇,晴,曇,曇,雨,雨,雨,曇,曇,晴,曇,雨,曇,雨,曇,曇,曇,晴,曇,雨,晴,晴,晴,晴,曇,晴,曇,晴) do (
set /a i+=1
if "!S!"=="%%A" set /a match+=1
set s=%%A
)
:: echo 一致数/比較回数 : %match%/%i%
set /a a=match, b=i
:EUCLID_GCD
if %a% NEQ 0 set /a "c=a, a=b%%a, b=c" &goto :EUCLID_GCD
set /a match/=b, i/=b
if %match% NEQ 0 (echo 確率 : %match%/%i%) else echo 確率 : 0
pause

990 名前:デフォルトの名無しさん [2020/11/20(金) 19:52:50.75 ID:HawO8Ftl.net]
>>951
Kotlin
https://paiza.io/projects/AeE4_7EmFluzVxuefBJmDw

991 名前:とくめい mailto:kakeruyamasato@gmail.com [2020/11/24(火) 01:34:45.23 ID:SQQDs1Pp.net]
kakeruyamasato@gmail.comこのメアドを悪用してみせて

992 名前:デフォルトの名無しさん mailto:sage [2020/11/24(火) 08:07:25.33 ID:aaTbFie9.net]
通報しますた

993 名前:デフォルトの名無しさん [2020/11/25(水) 01:49:24.25 ID:O2Mln20T.net]
>>964
Kotlin
https://paiza.io/projects/-bhKDI048mc0kOJzIFqOHA

994 名前:デフォルトの名無しさん mailto:sage [2020/11/26(木) 19:02:45.00 ID:ACzSTlzf.net]
>>951
a,b,c = [1,2,10]
puts ((a..c) % b).to_a.shuffle



995 名前:デフォルトの名無しさん [2020/11/27(金) 01:08:20.91 ID:bIFui41M.net]
>>977
なんていう言語?

996 名前:デフォルトの名無しさん mailto:sage [2020/11/27(金) 02:57:17.73 ID:ocMZsxYX.net]
>>978
rubyでしょ

997 名前:デフォルトの名無しさん [2020/11/27(金) 19:31:40.66 ID:Pnsgs34G.net]
rubyだったか。

998 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 00:37:28.60 ID:PcPNtVOH.net]
%がわからないって怒られた

999 名前:デフォルトの名無しさん [2020/11/28(土) 07:20:49.13 ID:mYohOVrw.net]
お題
以下を表示する
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday

1000 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 07:34:45.42 ID:CtkueG9H.net]
>>982 bat
@echo.以下を表示する
@echo.Monday
@echo.Tuesday
@echo.Wednesday
@echo.Thursday
@echo.Friday
@echo.Saturday
@echo.Sunday

1001 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 08:05:44.72 ID:nEfgRBi9.net]
意外と難しいな

1002 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 08:40:11.81 ID:wyvnQiBB.net]
>>982 Ruby

puts Date::DAYNAMES.rotate

# => Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday

1003 名前:デフォルトの名無しさん [2020/11/28(土) 09:00:26.43 ID:2Muxtrov.net]
>>977
問題の解釈違わねえ?

1004 名前:デフォルトの名無しさん [2020/11/28(土) 09:12:26.58 ID:nEfgRBi9.net]
>>982 js
const range = v => [...Array(v).keys()]
const DAY_MS = 24 * 60 * 60 * 1000

const weekday = d => d.toLocaleString('en', { weekday: 'long' })

console.log(range(7).map(i => weekday(new Date((i + 4) * 24 * 60 * 60 * 1000))).join("\n"))



1005 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 11:36:22.72 ID:FGpMIdZG.net]
>>981
( 1..10 ) % 2

range に、% というメソッドは無い!

1006 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 12:27:13.39 ID:GOv1h+p2.net]
>>988
NEWS for Ruby 2.6.0
2.5.0 以降の変更
https://docs.ruby-lang.org/ja/2.6.0/doc/news=2f2_6_0.html
> Range
> 新規メソッド
> Range#% が追加されました。 [feature#14697]

1007 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 12:38:57.57 ID:L52xXSLK.net]
予想通りの流れになってくれて何より

1008 名前:977 mailto:sage [2020/11/28(土) 14:12:40.28 ID:FGpMIdZG.net]
ruby -e 'p ( ( 1..5 ) % 2 ).to_a'
#=> [1, 3, 5]

2 は、各ステップの大きさ

1009 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 16:09:49.88 ID:myGQAvEM.net]
ダメだ
オンラインでRuby 2.6使えるとこ見つからない
どっかない?

1010 名前:デフォルトの名無しさん [2020/11/28(土) 16:34:18.46 ID:gB71rnHS.net]
>>992
ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux]
https://www.jdoodle.com/execute-ruby-online/

ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux]
https://techiedelight.com/compiler/

ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]
https://paiza.io/en/projects/new?language=ruby

1011 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 16:39:08.00 ID:nEfgRBi9.net]
jdoodle初めて知った
手元の汚い環境にもrepelにもpaizaにもなかったとき使おう

1012 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 17:26:12.48 ID:FGpMIdZG.net]
paiza は、いつも新しい

codepad は、古いような気がする

1013 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 17:30:47.77 ID:FGpMIdZG.net]
漏れは、Windows 10, WSL, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL も使う

Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた

対応している言語を表示すると、
anyenv install --list

Renv, crenv, denv, erlenv, exenv
goenv, hsenv, jenv, jlenv, luaenv
nodenv, phpenv, plenv, pyenv, rbenv
sbtenv, scalaenv, swiftenv, tfenv

Julia のjlenv も追加された。
anyenvと同様のツールに、asdf もある

1014 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 17:57:16.56 ID:myGQAvEM.net]
>>993
thx
でもiphoneでどのサイトもコピペができないorz
なんでなんだろう?



1015 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 18:01:21.11 ID:myGQAvEM.net]
とりあえず自分で打ち込んで試した
shuffleはランダムに並べ替えみたいだからちょっと違うかな

1016 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 22:44:23.07 ID:wyvnQiBB.net]
>>998
shuffleの代わりにsampleを使うといい

1017 名前:デフォルトの名無しさん mailto:sage [2020/11/29(日) 06:10:23.39 ID:LsAPFm47.net]
>>982 bat
:: 年月日を元に曜日を返す。 No args validation. 引数が無ければシステム時間
@echo off &setlocal enabledelayedexpansion
if not "%~1"=="" set "date=%~1"
:: set "date=2020.09.09"
set i=0
for %%a in (Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Y,M,D) do set "wd!i!=%%a"&set /a i+=1
set i=7
for /f "tokens=1-3 delims==/-.:,;()_・年月日 " %%a in ("%date%") do for %%d in (%%a %%b %%c) do for /f "tokens=* delims=0" %%e in ("%%d") do for /f %%i in ("!i!") do set /a !wd%%i!=%%e,i+=1
:: echo=%Y%,%M%,%D%,
set /a h=(365*Y+(Y-1)/4-(Y-1)/100+(Y-1)/400+(M+7)/10*(30*(M-3)+(3*M-7)/5+59+D-1)+(1/(Y%%4+1)-1/(Y%%100+1)+1/(Y%%400+1)+(M+7)/10)/2)%%7
echo=!wd%h%!
pause&exit /b

1018 名前:デフォルトの名無しさん [2020/11/29(日) 12:05:03.89 ID:POmPIOqu.net]
>>982 Julia
using Dates
for w=1:7
println(Dates.format(Date(1,1,w), "E"))
end

1019 名前:デフォルトの名無しさん [2020/11/29(日) 14:25:29.24 ID:KxupmnON.net]
>>982
Kotlin script

println(java.text.DateFormatSymbols(java.util.Locale.ENGLISH).getWeekdays().let { wd -> ((2..6) + 1).map { wd[it] } }.join
ToString("\n"))

Javaのライブラリをそのまま使ってやってるので1が日曜で7が土曜になってしまい、
それを並び替えてから出力する必要があって少し複雑になった。

1020 名前:253 mailto:sage [2020/11/29(日) 15:02:42.80 ID:onV9IrOo.net]
>>982Perl5

use Time::Piece;
use Time::Seconds;
$

1021 名前:t = Time::Piece->strptime('210201','%y%m%d');
for (0..6) { print $t->fullday."\n"; $t += ONE_DAY }


実行結果
~ $ perl 18_971_fullday.pl
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
[]
[ここ壊れてます]

1022 名前:253 mailto:sage [2020/11/29(日) 17:21:11.49 ID:onV9IrOo.net]
>>982 Perl5、>>1003 のもうチョイ手抜き版

use Time::Piece;
for (1..6,0) { print Time::Piece::fullday([(0)x6, $_])."\n" }

~ $ perl 18_971_fullday.pl
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday

1023 名前:デフォルトの名無しさん [2020/11/29(日) 20:08:13.17 ID:idUZlJAo.net]
>>982
Java
https://paiza.io/projects/F3UDtssyIBLD9KwEcaTfjA

1024 名前:デフォルトの名無しさん [2020/11/29(日) 20:39:34.37 ID:idUZlJAo.net]
お題
配列を入力として受け取り
値が連続するサブ配列のうち、合計が最大のものを出力してください


入力:[−2, 1, −3, 4, −1, 2, 1, −5, 4]
出力:[4, −1, 2, 1]



1025 名前: mailto:sage [2020/11/29(日) 21:07:17.97 ID:POdKASdd.net]
>>1006
>サブ配列
の定義を教えてください

1026 名前:デフォルトの名無しさん mailto:sage [2020/11/29(日) 21:15:00.96 ID:sOEBQUsx.net]
値が連続しないサブ配列とは?

1027 名前:デフォルトの名無しさん [2020/11/29(日) 21:21:35.35 ID:idUZlJAo.net]
>>1007
教えません

>>1008
[1, 4, 2, 1, 4]
とか

1028 名前:デフォルトの名無しさん mailto:sage [2020/11/29(日) 21:26:09.30 ID:sOEBQUsx.net]
[4, −1, 2, 1]は値が連続するサブ配列で
[1, 4, 2, 1, 4]は値が連続しないサブ配列?
連続の定義は?

1029 名前:デフォルトの名無しさん [2020/11/29(日) 21:34:10.34 ID:idUZlJAo.net]
>>1010
教えません

1030 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 138日 7時間 40分 24秒

1031 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<338KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef