変奏現実

パソコンやMMORPGのことなどを思いつくまま・・・記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

この画面は、簡易表示です

パソコン

[Windows]MSからのメール受信の登録・解除

MSからのお知らせメールの受信設定は、このリンクから登録・解除が可能。

Start サマリーは、このリンクから登録が可能。

解除は、上の画像下部のプロモーション コミュニケーション マネージャーのリンクから

メアドを入力するとURLが入ったメール(なぜか迷惑メールに分類された)が送られるので、

リンクをクリックできない場合は、リンク上で右クリックして【リンクをコピー】し、

ブラウザにURLを貼って開く。

そこのURLの画面で登録・解除が可能。

暫くすると構成が変わるんだろうなぁ。



[Win11]Windows Subystem for Linux

Microsoft StoreからWindows Subystem for Linuxをインスト。

インスト後の【開く】ボタンを押すと

Linux 用 Windows サブシステムにディストリビューションがインストールされていません。

'wsl.exe --list --online' を使用して利用可能なディストリビューション
を一覧表示し、'wsl.exe --install <Distro>' を使用してインストールします。

また、Microsoft Store にアクセスしてディストリビューションをインストールすることもできます:
https://aka.ms/wslstore
Error code: Wsl/Service/CreateInstance/GetDefaultDistro/WSL_E_DEFAULT_DISTRO_NOT_FOUND
続行するには何かキーを押してください...

wslだけでは何もできないので、何かLinuxをインストしないといけないらしい。現状を確認してみる。

Microsoft Windows [Version 10.0.22621.2283]
(c) Microsoft Corporation. All rights reserved.

C:\Users\[ユーザ名]>wsl --list --verbose
Linux 用 Windows サブシステムにディストリビューションがインストールされていません。

'wsl.exe --list --online' を使用して利用可能なディストリビューション
を一覧表示し、'wsl.exe --install <Distro>' を使用してインストールします。

また、Microsoft Store にアクセスしてディストリビューションをインストールすることもできます:
https://aka.ms/wslstore
Error code: Wsl/WSL_E_DEFAULT_DISTRO_NOT_FOUND

やはり何も入っていない。

このwslのバージョンを確認してみると

C:\Users\[ユーザ名]>wsl.exe --version
WSL バージョン: 1.2.5.0
カーネル バージョン: 5.15.90.1
WSLg バージョン: 1.0.51
MSRDC バージョン: 1.2.3770
Direct3D バージョン: 1.608.2-61064218
DXCore バージョン: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows バージョン: 10.0.22621.2283

WSLのバージョンは古いままらしい。

wslのver2の入手方法は不明。

とりあえず何がインストできるんだろう?

Microsoft Windows [Version 10.0.22621.2283]
(c) Microsoft Corporation. All rights reserved.

C:\Users\[ユーザ名]>wsl.exe --list --online
インストールできる有効なディストリビューションの一覧を次に示します。
'wsl.exe --install <Distro>' を使用してインストールします。

NAME                                   FRIENDLY NAME
Ubuntu                                 Ubuntu
Debian                                 Debian GNU/Linux
kali-linux                             Kali Linux Rolling
Ubuntu-18.04                           Ubuntu 18.04 LTS
Ubuntu-20.04                           Ubuntu 20.04 LTS
Ubuntu-22.04                           Ubuntu 22.04 LTS
OracleLinux_7_9                        Oracle Linux 7.9
OracleLinux_8_7                        Oracle Linux 8.7
OracleLinux_9_1                        Oracle Linux 9.1
openSUSE-Leap-15.5                     openSUSE Leap 15.5
SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
SUSE-Linux-Enterprise-15-SP5           SUSE Linux Enterprise 15 SP5
openSUSE-Tumbleweed                    openSUSE Tumbleweed

C:\Users\[ユーザ名]>wsl.exe --install Ubuntu-22.04
インストール中: Ubuntu 22.04 LTS
Ubuntu 22.04 LTS がインストールされました。
Ubuntu 22.04 LTS を起動しています...
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: admin ※試しに既存のユーザ名を入力してみると・・・
adduser: The group `admin' already exists. ※ちゃんと弾かれた
Enter new UNIX username: [Linux用のユーザ名]
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.15.90.1-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage


This message is shown once a day. To disable it please create the
/home/[Linux用のユーザ名]/.hushlogin file.
[Linux用のユーザ名]@[PC名]:~$

無難なUbuntu-22.04をインストしてみた。

これで使えるらしい。

一応、Windowsで再ログインするとエクスプローラからUbubtuのリンクが貼られているのでファイル操作は可能。

また、windowsのコマンドラインからwslを実行すると、

Microsoft Windows [Version 10.0.22621.2283]
(c) Microsoft Corporation. All rights reserved.

C:\Users\slani>wsl
root@[PC名]:/mnt/c/Users/[ユーザ名]# pwd
/mnt/c/Users/[ユーザ名]
root@[PC名]:/mnt/c/Users/[ユーザ名]#

と出るので、/mnt/[windowsのドライブ名]/・・・な感じでwindowsのファイルへもアクセスできそう。

ただ、ネットワークをいじるのはマズイらしいから、外部からの参照は不可っぽい。

複数のディストリビューションも併用できるっぽいのでOracleLinux_9_1もインストしてみた。

C:\Users\[ユーザ名]>wsl --list --verbose
  NAME               STATE           VERSION
* Ubuntu-22.04       Stopped         2
  OracleLinux_9_1    Stopped         2

ちなみにエクスプローラのリンクもOS毎に分かれていたので安心。

コマントラインでwslを起動すると、*の付いたUbuntu-22.04が実行される。

C:\Users\[ユーザ名]>wsl
root@[PC名]:/mnt/c/Users/[ユーザ名]#
C:\Users\[ユーザ名]>wsl --list --verbose
  NAME               STATE           VERSION
* Ubuntu-22.04       Running         2
  OracleLinux_9_1    Stopped         2

ディストリビューションを指定すればドレでも起動もできる。

C:\Users\[ユーザ名]>wsl -d OracleLinux_9_1
[root@[PC名] [ユーザ名]]#
C:\Users\[ユーザ名]>wsl --list --verbose
  NAME               STATE           VERSION
* Ubuntu-22.04       Stopped         2
  OracleLinux_9_1    Running         2

試しにプレリリースをインストしてみると

C:\Users\[ユーザ名]>wsl --update --pre-release
更新プログラムを確認しています。
Linux 用 Windows サブシステムをバージョンに更新しています: 2.0.0。
^C
C:\Users\[ユーザ名]>wsl --version
WSL バージョン: 1.2.5.0
カーネル バージョン: 5.15.90.1
WSLg バージョン: 1.0.51
MSRDC バージョン: 1.2.3770
Direct3D バージョン: 1.608.2-61064218
DXCore バージョン: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows バージョン: 10.0.22621.2283

変わらない。(謎

一旦、コマンドプロンプトを閉じて、開き直なおして再確認。

Microsoft Windows [Version 10.0.22621.2283]
(c) Microsoft Corporation. All rights reserved.

C:\Users\[ユーザ名]>wsl --version
WSL バージョン: 2.0.0.0
カーネル バージョン: 5.15.123.1-1
WSLg バージョン: 1.0.57
MSRDC バージョン: 1.2.4485
Direct3D バージョン: 1.608.2-61064218
DXCore バージョン: 10.0.25880.1000-230602-1350.main
Windows バージョン: 10.0.22621.2283

無事にver2になってた。

後、wslで起動した場合、コマンドプロンプトを閉じても終了しないので、ちゃんとshutdownしないといけないらしい。

Microsoft Windows [Version 10.0.22621.2283]
(c) Microsoft Corporation. All rights reserved.

C:\Users\[ユーザ名]>wsl --shutdown



[Win11]ストレージのクリーンアップ

Windows10ではディスクのプロパティのツールから一時ファイル等を「クリーンアップ」する事ができたが、今のWindows11の同じ画面には「クリーンアップ」ボタンは無い。

「設定」から「ストレージ」画面に「クリーンアップ対象候補」と云うのがあるが、大抵はずーっと処理中のままだ。

なので「ストレージセンサー」画面に進み、【今すぐストレージセンサーを実行する】ボタンを押すしかない様だ。

尚、実行する前に画面のチェックボックスの選択状態をよく確認してから実行しないと、「アプリファイル」が消えたり「ダウンロードフォルダ」が空っぽになって困るかもしれない。

処理が終わると「クリーンアップ対象候補」で一時ファイル等が選択できるようになる。

ここまでの操作で、「設定」から「システム」⇒「ストレージ」⇒「一時ファイル」の画面がWindows10の「クリーンアップ」と同じような画面になるので、要らないモノを選択して「クリーンアップ」できるようになる。

Androidのgoogleもそうだけど、OSの製作者はストレージを汚箱にしたい様だ。

もしくは、掃除はロボットの仕事と思っているのだろう。



[三国英雄の夜明け]累積勲功

面倒くさいけど領地の各設備のレベルアップしたら官邸レベルを36から39に上げられた様な気がしてますが、3か月過ぎても36のままの方もいます。

爵位条件の「領地の官邸がLv36に達成」や「県公を達成し、累積で700万戦功獲得」は毎度の事ですが、今回は久々に「累積勲功獲得」が入ってます。しかも6千万!※はい。たった今0を数えました。

履歴から最低でも累積2千万勲功はあるはずですが、

久々に復活して条件を確認してみたら

4千万足りないよ!

となったら、ちょっと絶望してしまうレベルかもしれません。

もっともレベル36でも、ボクより戦力は遥かに上の方もチラホラ見かけますけどね。

ps.2023/07/26

勲功を増やす方法

毎日の政務で増やすのが基本。

要らないアイテムがあれば以下の手段も使える。

  • 無駄に資源(木とか鉄が)が何億もあるなら、コツコツとムダな建設に励む
    • 建設する度に勲功が増える
    • うまくいけば10倍の年度報酬も夢じゃない
    • 黄金を使用して「直ちに完了」すれば早い
      • 注意:早い早いと調子に乗ると後悔しそう
  • 勲功を消費する獣霊の生門と死門のレベルアップと分解を繰り返す
    • 分解した時に勲功が増える
    • 獣霊の生門と死門がいっぱいあればサクサク進める
    • 注意:要らない獣霊の生門と死門ダケにしましょう
  • 生産(村)で報酬の選択肢がある時にデフォルトではないボタンの方も選んでみる
    • 勲功が貰えるときもある



[三国英雄の夜明け]陣法

さっぱり陣法が赤ランクにならないので、呂布(ろふ)から奪って貂蝉(ちょうせん)に付けてみた。

うまくいったので、馬超(ばちょう)、趙雲(ちょううん)、小喬(しょうきょう)も赤くしてみた結果、4人の4パラメータが+1になったので戦力がアップ、4100万台になった。

※但し、他の4人の陣法が僅かに下がってる。

でも上位陣は1英雄で1000万~1700万もあるので、本当に僅か。

ps.2023/08/01

やっと戦力4,200万。

見返してみると、趙雲や小喬が伸び悩み?

主に趙雲、甄姫、小喬の魂玉を触媒に貂蝉や馬超の魂玉のレベルアップしたせいかな。

趙雲、甄姫、小喬は更に下の英雄の魂玉を触媒にレベルアップして多少戻してるけど

小喬だけ吸われ過ぎて戦力ダウンしてたw

半月も経たずに一千万アップしたものの、

上位陣の英雄は日々戦力アップしてるのが判るくらい凄い。

その上位陣ではぶっ壊れ性能の英雄を吹っ飛ばす英雄の育成の話で盛り上がってた。

どうやら、英雄と武器と装備の組み合わせ次第でそうなる時もあるそうな。※スキル発動の確率による

初期から実装された英雄はいずれも安定した性能を求めて制約(※最大20%)が付いているが、覚醒させて神付き(神・袁尚)英雄には無いので運営も織り込み済みらしい。

つまり、いっぱい課金したら良い事もあるよ。(的な

無課金でも「発現すれば美味しい神霊」が貰えるから悪くないけどね。(笑



[三国英雄の夜明け]神霊

オークションに出る神霊は先天3個だったから、最大3個だと思ってたら

4個も持ってるのが出た。(ヒラ神霊だけどね。

先天が4つもあるから

後5個追加すると9個も覚えられる。(らしい

と思ってたら伏魔戦場の景品からも出てきた。

近日他のサーバー統合が来るから設定変わったのかな?

特に「西王聖母◆尊」は美味しい気がする。

ps.2023/07/30

課金のみと思ってた先天5が普通に出ました。

使っている神霊と差し替えたいけど黄金が足りないので暫くお預け。

ps.2023/08/01

黄金が溜まったので強化。

ブロック発生率が少しアップしたけど、ブロック触発時の【仕返す】はまだ見れない。

神霊はFF14のアーマーチェストみたいに国戦の攻城や国戦守城とか状況に合わせた攻法(スキルみたいなもの)のセットを組み立て着替えて使うものの様な気がするけど、荒野の試練の5分毎のランダムドロップ(しかもたったの1枚)に頼るのは心もとないとは云え、功法を崑崙商店で買いそろえるためのチップを伏魔戦場で地味に集めるのもやはりとても気が長いシステムになっている。



[三国英雄の夜明け]第六回統合大型アップデート

やっと来る。

でも、告知日の明後日に統合するとは・・・告知?あ、忘れてたw(なのかな?

  • 爵位追加
  • 官邸レベル上限解放(+3)
  • 新英雄
  • 新覚醒
  • 新補助スキル
  • 新宝物

後は、ほとんど課金系だから関係無し。

新ゲーム設置予想場所

崑崙仙境が何なのか判らない。

新たな課金ミニゲームの様な気がするけどね。

そして、これらは40枚揃わないまま統合しそう。

なお、ただのアップデートなので、サーバーは統合されませんでした。

ps.2023/4/21

今現在、官邸レベルアップは郡公への爵位上昇条件が後日公開となっているため不可。

4/25(火)にサーバー統合されるので、「サーバー統合直前大型アップデート」だった様です。

なお今回のサーバー統合の対象はS5_1~6らしい。「同勢力に所属となります」の文面があるのでシャフル(バラバラに再配置)ではなさそう。

また統合後、爵位名の変更、英雄の天賦や宝物や戦計等の効果調整、英雄の戦力スーパーインフレで弱体(ゴミ)化した護国軍(NPC)の強化が含まれるとのこと。

ps.2023/4/24

明日サーバー統合する様です。

その影響でシーズンイベントも短縮。



「EXCEL」Lambda関数

謎が多いLambda関数。

外部からの参照時にパラメータを貰い、Lambda関数の処理に引き渡せる点が光っている。

=LAMBDA(a,b,SQRT(a*b))

と書くと

#CALC!

になってしまう。

これはパラメータを指定していないためで、パラメータを追加すると

=LAMBDA(a,b,SQRT(a*b))(10,10) ⇒ 10

となるけど、こうなってしまっては使い道が全くない。

そこで、セル名の参照範囲が=で始まるのを利用し、(10,10)抜きでLAMBDA式を適当なセル名で登録すれば・・・

セル名:あああ
参照範囲:=LAMBDA(a,b,SQRT(a*b))

どこかのセルの式:あああ(10,10)⇒10

と云う感じでVBAマクロを使わなくてもユーザ関数(今風にはカスタム関数と云うらしい)を作ることができる。

但し、処理が1行に収まる様に纏められるならないが

そこはLET関数を使って、1行に纏められるなら

ワークシートに散乱している=LET(・・・な計算式を一纏めにできるので

後々の修正もセル名の計算式を治すだけでうまくいく(かもしれない

好感度やランキングの様なその時々で評価式を一斉に変えないといけない案件には非常に有効な気がする。

尚、このLAMBDA関数はループができるらしい。

式:=REDUCE(0,A1:C2, LAMBDA(a,b,a+b^2))

ちょっと見、訳が判らないけど、A1からC2の2乗値を合算する式となっている

LAMBDAの第1パラメータは多分、初期値か前回のLAMBDA関数の計算結果

LAMBDAの第2パラメータは計算して欲しいセルの値

つまり、LAMBDA関数はA1:C2の6セル分のループ中に6回も計算させられる。

1回目:LAMBDA(0,1,0+1^2)
2回目:LAMBDA(1,2,1+2^2)
3回目:LAMBDA(5,3,5+3^2)
4回目:LAMBDA(14,4,14+4^2)
5回目:LAMBDA(30,5,30+5^2)
6回目:LAMBDA(55,6,55+6^2)
最後:91

な感じになるので、LAMBDAのパラメータが2つあるようだ。

セル単位で処理が済むならMAP関数でループする方が簡単かも、

下図は範囲の値を2倍した範囲を作るだけ

式:=MAP(A1:C2,LAMBDA(a, a*2))

計算式はMAP関数のパラメータに範囲があるので自動的にスピルされるのでD3のみに書けばよい。

さらにMAP関数には範囲を複数指定できるらしいので、A範囲+B範囲な計算結果もつくれるっぽい。

式:=MAP(A1:C2,A4:C5,LAMBDA(x, y, x + y ))

再びLAMBDAのパラメータが2つになったけど、扱う範囲が2つなんだから仕方が無い。

同様に、BYROWやBYCOL関数もあるが、動きは(多分)予想できると思う。

SEQUENCE関数が引き渡した数だけ連番(つまり配列)を出力してくれる。

これを使うとLEN関数を組み合わせ、文字列の長さ分の連番を作ることができるから・・・

それをMAP関数に食わせると、1文字づつ何かの処理をやってくれる。

式:=LET(セル, A1, MAP(SEQUENCE(LEN(セル)), LAMBDA(x, MID(セル, x, 1))))

しかし、具体的な使い道となると、1文字コマンドなプロトコルの場合かな?

ロボットのコマンドとかで、

“1422”: “1”:右折、”4″:後退、”2″:左折

⇒ 右折、後退、後退、左折 とかかな?

更に、自己再帰処理が可能らしい。

式:下参照
=LET(対象セル,A1,
  Z,  LAMBDA(f, LET(g, LAMBDA(x, f(LAMBDA(v, LET(w, x(x), w(v) )))), g(g))),
  myfact, Z(LAMBDA(myfact, LAMBDA(x, IF(x=0, 1, x * myfact(x-1))))),
  myfact(対象セル)
)

元ネタ

元ネタの元ネタ。※リンク切れの可能性あり

再帰して欲しいと思って直行ルートで書くと

=LET(対象セル,$A$1,
  myfact,  LAMBDA(x, IF(x=0, 1, x * myfact(x-1))),
  myfact(対象セル)
)
⇒ #NAME?

そう、LET関数でのmyfact変数宣言中は「myfactの宣言が確定していない」ので、

myfact(x – 1)のmyfactなんて知らないがな?エラーが発生する。

注意1:LET文は直書きな再帰処理は不可能。

なので、事前作業として何か変数宣言して、ここを経由して名前の確定を遅延させてしまえばよい。

しかしmyfactを直接引き渡せないことに変わりは無いので、

LAMBDA関数を使って仮引数仮引数を含む処理の形で一旦処理中で参照するmyfactの実体の確定を保留しつつmyfactの宣言を先に完了させる。

=LET(対象セル,$A$1,
  Z, ・・・(検討中)・・・
  myfact, Z(LAMBDA(myfact, LAMBDA(x, IF(x=0, 1, x * myfact(x-1))))),
  IF( 対象セル=0, 0, myfact(対象セル))
) ⇒ #CALC!

LAMBDA(LAMBDA())な感じになって見苦しいなぁ・・・(泣き

さて・・・

Zは不動点コンビネータで書けばいいらしいけど、

Z = lambda f: (lambda x: f(lambda *y: x(x)(*y)))(lambda x: f(lambda *y: x(x)(*y)))

他の言語の例は無名再帰にあるらしいがEXCELは載ってない。

不動点コンビネータの1例にYコンビネータというのがあるらしく、

これをEXCELの計算式にすると

LAMBDA(f, LET(g, LAMBDA(x, f(x(x)), g(g))))

しかし式を確定しようとすると

LAMBDA関数の宣言中なのに『f(x(x))』の『x(x)』部分を直ぐに計算しようとしてバグった

つまり、今のLAMBDA関数の処理部で関数の引数の式に関数が含まれていると

即評価してしまうのではないか?(ちょっと有り得ないけどね!

そんな気がした。

『x(x)』なら、直ぐに計算しようとは思わない。(ハズ

EXCELの為に少し難易度を下げてみる。

f(x(x))をfとx(x)に分離し

x(x)の処理を一旦wとして定義してから、

x(x)を計算する様にしてみると

LAMBDA(v, LET(w, x(x), w(v) ))

となる。

この仮引数vには外側のLAMBDA関数『LAMBDA(x, f(x(x))』の仮引数xが引き渡されるハズなので、『f(x(x))』と等価になるハズだ。

これで調整しなおして

LAMBDA(f, LET(g, LAMBDA(x, f(LAMBDA(v, LET(w, x(x), w(v) )))), g(g)))

になった。

・・・

元ネタ記事では「今風」に詳しく説明されているので、間違いなくそちらの方が理解しやすいだろう。

僕はよーく読んだ末にやっぱりイミフになってしまった。※頭悪いなぁボクは!

EXCELの式の処理の都合をイメージしながら

僕なりに考察してみるしかなかった。※頭悪いなぁボクは!

だから、やはりあのゴニョゴニョなZの式

「EXCEL風Yコンビーネータ」

の様に思えた。



「EXCEL]LET関数

javascriptでも最近よく使うLET ※予約語

javascriptでは、var同様に変数宣言として使うけど・・・

EXCELでは、やはりBASICでのLET文である。

Rem LET 変数 = 計算式
LET X = SQRT(13)
=LET (変数名1, 計算式1, 変数名2, 計算式2, ・・・, セルの計算式  )

最後のセルの計算式は、この式の結果を計算するための計算式なので、

セルに何も表示しないなら、” ” でも良いかもしれない。

変数名n (n=1,2,・・・)は、このLETでのローカル変数らしくセル名リストに載らない。

なんだか使い道がさっぱり思いつかないが

=LET(範囲,A1:G1,合計,SUM(範囲), 平均, 合計/COLUMNS(範囲), "平均:" & 平均)

と書ける。改行してみると

=LET(
範囲,A1:G1,
合計,SUM(範囲),
平均, 合計/COLUMNS(範囲),
"平均:" & 平均)

つまり、LET関数は複数のセルに分けていた計算式を1つにまとめることができる。(コトもある

パっと見やすいのも高得点。

ワークシートに処理の破片みたいな計算式をバラまいてしまうとシートの端々までチェックしないと動きが読めないので大変。

そんな時はとても重宝するかもしれない。

なんたってEXCELの列は256個しかないしね。(笑




top