プログラミングのお題スレです。
【出題と回答例】
1 名前:デフォルトの名無しさん
お題:お題本文
2 名前:デフォルトの名無しさん
>>1 使用言語
回答本文
結果がある場合はそれも
【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/
宿題は宿題スレがあるのでそちらへ。
※前スレ
プログラミングのお題スレ Part17
https://mevius.5ch.net/test/read.cgi/tech/1584031367/
プログラミングのお題スレ Part18
レス数が1000を超えています。これ以上書き込みはできません。
2020/07/14(火) 13:53:46.47ID:jW5p6F/e
956デフォルトの名無しさん
2020/11/15(日) 20:20:51.56ID:8j4ATkh0 >>953 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
let hits = 0
const input = '曇,晴,曇,曇,晴,曇,曇,雨,雨,雨,曇,曇,晴,曇,雨,曇,雨,曇,曇,曇,晴,曇,雨,晴,晴,晴,晴,曇,晴,曇,晴'.split `,`
input.reduce((acc, v) => (hits += acc == v ? 1 : 0, v))
console.log(hits / (input.length - 1))
//=> 0.3333333333333333
957デフォルトの名無しさん
2020/11/15(日) 20:22:58.52ID:KOddDUPF >>956
.split(`,`) では
.split(`,`) では
958デフォルトの名無しさん
2020/11/15(日) 20:23:55.05ID:KOddDUPF すまん。バッククウォートだった。
959デフォルトの名無しさん
2020/11/16(月) 00:51:51.08ID:lyH8UsEw >>947
@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
@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
960デフォルトの名無しさん
2020/11/16(月) 03:31:51.13ID:apQPm4KR >>954
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
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
961デフォルトの名無しさん
2020/11/16(月) 03:32:04.47ID:lyH8UsEw >>953 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
@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
962デフォルトの名無しさん
2020/11/20(金) 19:52:50.75ID:HawO8Ftl963とくめい
2020/11/24(火) 01:34:45.23ID:SQQDs1Pp kakeruyamasato@gmail.comこのメアドを悪用してみせて
964デフォルトの名無しさん
2020/11/24(火) 08:07:25.33ID:aaTbFie9 通報しますた
965デフォルトの名無しさん
2020/11/25(水) 01:49:24.25ID:O2Mln20T966デフォルトの名無しさん
2020/11/26(木) 19:02:45.00ID:ACzSTlzf967デフォルトの名無しさん
2020/11/27(金) 01:08:20.91ID:bIFui41M >>966
なんていう言語?
なんていう言語?
968デフォルトの名無しさん
2020/11/27(金) 02:57:17.73ID:ocMZsxYX >>967
rubyでしょ
rubyでしょ
969デフォルトの名無しさん
2020/11/27(金) 19:31:40.66ID:Pnsgs34G rubyだったか。
970デフォルトの名無しさん
2020/11/28(土) 00:37:28.60ID:PcPNtVOH %がわからないって怒られた
971デフォルトの名無しさん
2020/11/28(土) 07:20:49.13ID:mYohOVrw お題
以下を表示する
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
以下を表示する
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
972デフォルトの名無しさん
2020/11/28(土) 07:34:45.42ID:CtkueG9H >>971 bat
@echo.以下を表示する
@echo.Monday
@echo.Tuesday
@echo.Wednesday
@echo.Thursday
@echo.Friday
@echo.Saturday
@echo.Sunday
@echo.以下を表示する
@echo.Monday
@echo.Tuesday
@echo.Wednesday
@echo.Thursday
@echo.Friday
@echo.Saturday
@echo.Sunday
973デフォルトの名無しさん
2020/11/28(土) 08:05:44.72ID:nEfgRBi9 意外と難しいな
974デフォルトの名無しさん
2020/11/28(土) 08:40:11.81ID:wyvnQiBB975デフォルトの名無しさん
2020/11/28(土) 09:00:26.43ID:2Muxtrov >>966
問題の解釈違わねえ?
問題の解釈違わねえ?
976デフォルトの名無しさん
2020/11/28(土) 09:12:26.58ID:nEfgRBi9 >>971 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"))
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"))
977デフォルトの名無しさん
2020/11/28(土) 11:36:22.72ID:FGpMIdZG978デフォルトの名無しさん
2020/11/28(土) 12:27:13.39ID:GOv1h+p2 >>977
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]
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]
979デフォルトの名無しさん
2020/11/28(土) 12:38:57.57ID:L52xXSLK 予想通りの流れになってくれて何より
980977
2020/11/28(土) 14:12:40.28ID:FGpMIdZG ruby -e 'p ( ( 1..5 ) % 2 ).to_a'
#=> [1, 3, 5]
2 は、各ステップの大きさ
#=> [1, 3, 5]
2 は、各ステップの大きさ
981デフォルトの名無しさん
2020/11/28(土) 16:09:49.88ID:myGQAvEM ダメだ
オンラインでRuby 2.6使えるとこ見つからない
どっかない?
オンラインでRuby 2.6使えるとこ見つからない
どっかない?
982デフォルトの名無しさん
2020/11/28(土) 16:34:18.46ID:gB71rnHS >>981
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
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
983デフォルトの名無しさん
2020/11/28(土) 16:39:08.00ID:nEfgRBi9 jdoodle初めて知った
手元の汚い環境にもrepelにもpaizaにもなかったとき使おう
手元の汚い環境にもrepelにもpaizaにもなかったとき使おう
984デフォルトの名無しさん
2020/11/28(土) 17:26:12.48ID:FGpMIdZG paiza は、いつも新しい
codepad は、古いような気がする
codepad は、古いような気がする
985デフォルトの名無しさん
2020/11/28(土) 17:30:47.77ID:FGpMIdZG 漏れは、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 もある
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 もある
986デフォルトの名無しさん
2020/11/28(土) 17:57:16.56ID:myGQAvEM987デフォルトの名無しさん
2020/11/28(土) 18:01:21.11ID:myGQAvEM とりあえず自分で打ち込んで試した
shuffleはランダムに並べ替えみたいだからちょっと違うかな
shuffleはランダムに並べ替えみたいだからちょっと違うかな
988デフォルトの名無しさん
2020/11/28(土) 22:44:23.07ID:wyvnQiBB >>987
shuffleの代わりにsampleを使うといい
shuffleの代わりにsampleを使うといい
989デフォルトの名無しさん
2020/11/29(日) 06:10:23.39ID:LsAPFm47 >>971 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
:: 年月日を元に曜日を返す。 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
990デフォルトの名無しさん
2020/11/29(日) 12:05:03.89ID:POmPIOqu991デフォルトの名無しさん
2020/11/29(日) 14:25:29.24ID:KxupmnON >>971
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が土曜になってしまい、
それを並び替えてから出力する必要があって少し複雑になった。
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が土曜になってしまい、
それを並び替えてから出力する必要があって少し複雑になった。
992253
2020/11/29(日) 15:02:42.80ID:onV9IrOo >>971Perl5
use Time::Piece;
use Time::Seconds;
$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
use Time::Piece;
use Time::Seconds;
$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
993253
2020/11/29(日) 17:21:11.49ID:onV9IrOo994デフォルトの名無しさん
2020/11/29(日) 20:08:13.17ID:idUZlJAo995デフォルトの名無しさん
2020/11/29(日) 20:39:34.37ID:idUZlJAo お題
配列を入力として受け取り
値が連続するサブ配列のうち、合計が最大のものを出力してください
例
入力:[−2, 1, −3, 4, −1, 2, 1, −5, 4]
出力:[4, −1, 2, 1]
配列を入力として受け取り
値が連続するサブ配列のうち、合計が最大のものを出力してください
例
入力:[−2, 1, −3, 4, −1, 2, 1, −5, 4]
出力:[4, −1, 2, 1]
997デフォルトの名無しさん
2020/11/29(日) 21:15:00.96ID:sOEBQUsx 値が連続しないサブ配列とは?
999デフォルトの名無しさん
2020/11/29(日) 21:26:09.30ID:sOEBQUsx [4, −1, 2, 1]は値が連続するサブ配列で
[1, 4, 2, 1, 4]は値が連続しないサブ配列?
連続の定義は?
[1, 4, 2, 1, 4]は値が連続しないサブ配列?
連続の定義は?
1000デフォルトの名無しさん
2020/11/29(日) 21:34:10.34ID:idUZlJAo >>999
教えません
教えません
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 138日 7時間 40分 24秒
新しいスレッドを立ててください。
life time: 138日 7時間 40分 24秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★2 [Hitzeschleier★]
- 日本語が話せない「外国籍」の子が急増中、授業がストップ、教室から脱走も…先生にも大きな負担「日本語支援」追いつかず [七波羅探題★]
- 「暖房が使えない」「食費が高くて子どもの栄養が…」 物価高に苦しむ子育て世帯、政府に期待する支援は [蚤の市★]
- 【米国】「トランプ・ゴールドカード」の受付開始 1億5600万円でアメリカの永住権を獲得 ウェブサイトで申し込み [ぐれ★]
- パワフル女性世界3位に高市首相 米誌フォーブス選出 [蚤の市★]
- 【東京】テレ朝本社から社外スタッフの男性が転落し死亡 テレビ朝日がコメント 通行人の男性巻き込まれ軽傷 六本木 [ぐれ★]
- エナジードリンク、危険だった。飲酒喫煙もせずランニングが趣味の54歳の若者が毎日たった8本飲むだけで脳卒中に [742348415]
- 高市「野党はもう債権とか為替の話はしないで!よく分からないから答えない!」 [884040186]
- Twitter医師ら「死ぬほど勉強して博愛精神求められるとかそらみんな美容外科なるわ。嫌なら普通の医療も保険診療廃止しろ!」 [762037879]
- はるととかいうスマブラやってる不登校のガキしね
- 鉄拳の平八とカズヤはいつまで殺し合いを続けるのか
- ホロライブvtuberさん、ソシャゲに登場するも演技力で界隈に衝撃が走る [329329848]
